QuizCat is a dynamic quiz application that offers a user-friendly interface and robust features for quizzing enthusiasts. The platform includes functionalities such as quiz-taking, history tracking, progress tracking, analytics, and customizable UI themes. The backend is built using Express.js, adhering to OOP principles and the MVC architecture, ensuring a scalable and maintainable codebase.
- Features
- Technologies Used
- Getting Started
- Folder Structure
- Frontend Details
- Backend Details
- Contributing
- License
- Quizzes: Take engaging quizzes with smooth animations.
- History: Track your past quiz attempts and scores.
- Progress Tracker: Monitor your growth and performance over time.
- Analytics: Gain insights into your quiz performance with visual data.
- Themes: Switch between Dark Mode and Light Mode for a personalized experience.
- Smooth Animations: Enjoy visually appealing transitions and animations.
- OOP Architecture: Ensures modular and reusable code.
- MVC Pattern: Separates concerns for scalability and maintainability.
- APIs: Robust API endpoints for seamless frontend-backend communication.
- Framework: Vite + React
- Styling: CSS/SCSS
- State Management: React Context/State hooks
- UI/UX: Dynamic animations and responsive design
- Framework: Express.js
- Architecture: Object-Oriented Programming (OOP) with Model-View-Controller (MVC)
- Node.js (>=14.x)
- npm or yarn
- Clone the repository:
git clone https://github.com/<your-username>/quizcat.git- Navigate to the project directory:
cd quizcat- Navigate to the frontend folder:
cd frontend- Install dependencies:
npm install- Start the development server:
npm run dev- Navigate to the backend folder:
cd backend- Install dependencies:
npm install- Start the development server:
npm run devquizcat/
├── frontend/ # Frontend codebase
│ ├── public/ # Static assets
│ ├── src/ # React components and logic
│ ├── package.json
│ └── vite.config.js
├── backend/ # Backend codebase
│ ├── models/ # Data models
│ ├── controllers/ # API logic
│ ├── routes/ # Express routes
│ ├── repository/ # Database logic
│ ├── utils/ # Utility functions
│ ├── package.json
│ └── server.js # Main application entry point
└── README.md # Project documentation
The frontend is a React application built using Vite for blazing-fast development. Features include:
- Dynamic routing for quizzes and user profiles.
- Context-based state management for theme and analytics.
- Responsive design optimized for multiple devices.
The backend is an Express.js server following the OOP paradigm:
- Controllers: Handle request-response logic.
- Models: Represent data entities and business logic.
- Routes: Define API endpoints.
APIs include:
- GET: Fetch quizzes, history, and analytics.
- POST: Submit quiz responses and track progress.
We welcome contributions! Please fork the repository and create a pull request with your changes. Ensure that your code follows the existing conventions and passes all linting checks.
This project is licensed under the MIT License. See the LICENSE file for details.