Your ultimate platform for mastering competitive exam questions
CompetiQuest is a full-stack web application designed to help users practice and excel in various competitive exam topics. It provides a clean, fast, and interactive interface for topic-wise question solving, immediate feedback, and performance tracking.
- User Authentication: Secure user registration and login system using JWT.
- Topic-wise Quizzes: Browse questions categorized by topics (e.g., Aptitude, Verbal Ability, Programming).
- Interactive Quiz Interface: Solve multiple-choice questions with an intuitive UI.
- Instant Results: Get immediate feedback on your answers after completing a quiz.
- User Dashboard: Track your performance and review past quiz attempts.
- Responsive Design: Fully functional and accessible on both desktop and mobile devices.
- (Admin) Question Management: A secure interface for administrators to add, update, and delete questions and topics.
This project is built using the MERN stack, with Next.js for a powerful frontend experience.
- Frontend: Next.js, React, Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose
- Authentication: JSON Web Tokens (JWT)
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
Make sure you have the following software installed on your machine:
- Node.js (v18 or newer recommended)
- npm or yarn
- Git
- MongoDB installed locally or a connection URI from MongoDB Atlas.
-
Clone the repository:
git clone [https://github.com/gauravRathod674/CompetiQuest.git](https://github.com/gauravRathod674/CompetiQuest.git) cd CompetiQuest -
Setup the Backend:
# Navigate to the backend directory cd backend # Install dependencies npm install
Create a
.envfile in thebackenddirectory and add the following environment variables.# .env PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=a_very_strong_and_long_secret_key
-
Setup the Frontend:
# Navigate to the frontend directory from the root cd frontend # Install dependencies npm install
Create a
.env.localfile in thefrontenddirectory and add the following variable.# .env.local NEXT_PUBLIC_API_URL=http://localhost:5000
You need to run the backend and frontend servers in two separate terminals.
-
Run the Backend Server (from the
/backenddirectory):npm run dev
The backend server should now be running on
http://localhost:5000. -
Run the Frontend Server (from the
/frontenddirectory):npm run dev
The frontend application should now be running on
http://localhost:3000.
This project is licensed under the MIT License. See the LICENSE file for more details.