Welcome to the Chasfat Academy Quiz Platform, a modern web-based application designed to facilitate quiz and exam creation, student registration, and result analysis. Built with a powerful React + Redux frontend and a scalable Node.js + Prisma + PostgreSQL backend.
A modern SPA (Single Page Application) powered by:
- React (Vite)
- Redux Toolkit for state management
- React Router for navigation
- Formik & React Hook Form for form handling
- Zustand for lightweight local state
- GraphQL integration for future scalability
- Node.js with Express.js
- Prisma ORM for database modeling and type-safe querying
- PostgreSQL as the relational database
- JWT-based Auth, Role-based Access Control (RBAC)
- REST API + GraphQL potential
git clone https://github.com/your-org/chasfat-quiz-app.git
cd chasfat-quiz-appcd frontend
npm installnpm run dev- Vite + React
- Redux Toolkit
- React Router
- Zustand
- Tailwind CSS (optional)
- GraphQL client-ready
cd backend
npm installCreate a .env file:
DATABASE_URL="postgresql://user:password@localhost:5432/chasfat_db"
JWT_SECRET="your-secret-key"
PORT=5000npx prisma migrate dev --name init
npx prisma generatenpm run devPOST /api/auth/registerPOST /api/auth/loginGET /api/auth/me
CRUD /api/coursesCRUD /api/examsCRUD /api/questions
GET /api/studentsPOST /api/students/bulk
- Course & Exam Management
- Bulk Student Registration
- Question Creation (MCQ, image-based, etc.)
- Exam Results & Analytics
- Login & Registration
- Participate in Timed Quizzes
- View Results
- Role-based:
admin,examiner,student - JWT Protected Routes
- Exam Reports
- Student-wise Performance
- Export Options (Coming soon)
components/ChasfatAcademy/pages: Core admin/student pagesfeatures/quiz,features/exam,features/result: Redux slicescomponents/Basics: Educational and demo componentsgraphql/: GraphQL integration with Anilist (for learning or expansion)zustand/: Lightweight UI state (Joyride onboarding etc.)
| Frontend | Backend | Database | Misc |
|---|---|---|---|
| React | Node.js | PostgreSQL | Prisma ORM |
| Redux Toolkit | Express.js | JWT Auth | |
| Zustand | ESLint, Prettier | ||
| Vite | GraphQL Ready | ||
| React Hook Form | Docker (planned) |
- Docker Support for Dev/Prod
- Advanced Role Permissions (e.g. Moderator)
- GraphQL Backend Support
- Exam Statistics Dashboard
- PDF & Excel Report Export
- Exam Result Auto Email
- WebSocket for Real-Time Quiz Status
Frontend:
npm run testBackend:
npm run testWe're using Jest and React Testing Library (to be expanded further).
We love contributions! Please fork the repo and submit a pull request with a clear title and description.
This project is licensed under the MIT License.
Maintained by the Chasfat Projects Dev Team.
Special thanks to all contributors and testers involved in early builds.