{"id":25065854,"url":"https://github.com/arvindk2025/quizcraft","last_synced_at":"2026-04-07T18:32:59.982Z","repository":{"id":270957026,"uuid":"911954192","full_name":"arvindk2025/QuizCraft","owner":"arvindk2025","description":"A dynamic MERN stack quiz app featuring admin-controlled quiz creation, editing, and deletion. Users can browse quizzes, take them, and able to view personalized scorecards.","archived":false,"fork":false,"pushed_at":"2025-01-10T21:32:39.000Z","size":7868,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T12:27:26.475Z","etag":null,"topics":["bycrypt","expressjs","jwt","mongodb","netlify","nodejs","react","redux","render"],"latest_commit_sha":null,"homepage":"https://quizcraft1.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arvindk2025.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-04T09:45:43.000Z","updated_at":"2025-04-01T18:24:55.000Z","dependencies_parsed_at":"2025-01-04T11:40:24.569Z","dependency_job_id":null,"html_url":"https://github.com/arvindk2025/QuizCraft","commit_stats":null,"previous_names":["arvindk2025/quizcraft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arvindk2025/QuizCraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvindk2025%2FQuizCraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvindk2025%2FQuizCraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvindk2025%2FQuizCraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvindk2025%2FQuizCraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arvindk2025","download_url":"https://codeload.github.com/arvindk2025/QuizCraft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arvindk2025%2FQuizCraft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31524525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bycrypt","expressjs","jwt","mongodb","netlify","nodejs","react","redux","render"],"created_at":"2025-02-06T19:45:12.626Z","updated_at":"2026-04-07T18:32:59.852Z","avatar_url":"https://github.com/arvindk2025.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuizCraft ( A MERN Stack Quiz Web-Application )\n\nA simple quiz application with user authentication using the MERN stack (MongoDB, Express.js, React.js, and Node.js). It incorporates full CRUD operations with token-based authentication (JWT).\n\n## Features\n\n### 1) User Authentication ( Must )\n- **User Authentification And Authorization**: We are providing 2 types of role during signup.\n  \n    ```sh\n     1) User 2) Admin\n    ```\n- After Signup user or admin can login using email and password . For Example -\u003e\n   \n    ```sh\n      email    : user3@gmail.com\n      Password : Arvind@123\n      Note : This is already created user if you want then you can create.\n    \n      email    : admin2@gmail.com\n      Password : Arvind@123\n      Note : This is already created admin if you want then you can create.\n    ```\n\n### 2) Admin Functionality \n\ni) **Login Authentication**:\n   ```\n    - Admin login with error message for invalid credentials and redirection to the dashboard upon successful login.\n   ```\nii) **Quiz Creation** :\n   \n   ```\n    - Admin will be able to create new quizzes. Quizzes includes title , description \u0026 timer . And Qquestion\n    - Admin can create questions for quizes with options and correct answer.\n   ```\niii) **Quiz Management** :\n\n   ```\n     - Admin will be able to Add, Edit \u0026 Delete questions for each quiz.\n   ```\n\n### 3) User Functionality \ni) **Listing of All Quizzes**:\n   \n   ```\n    - User will be able to see all available quizzes added by the admin.\n    - I have implemented proper Pagination Functionality if available quizzes is large.\n   ```\nii) **Taking a Quizz**:\n   \n   ```\n       - User will be able to take quizzes.\n       - Displaying only one question at a time with options. \n       - Allowing users to select their answers and move to the next question.\n       - At the end of the quiz, displaying the user's score.\n   ```\niii) **Quiz Results**:\n   \n   ```\n     - Storing and displaying quiz results after attempting and clicking on submit quiz.\n     - Showing the user's score, questions attempted and correct/incorrect answers.\n   ```\n\n## Technologies Used\n- **Frontend**: React.js\n- **Backend**: Node.js, Express.js\n- **Database**: MongoDB\n- **Authentication**: JSON Web Token (JWT)\n\n## Installation\n\n### Prerequisites\n- Node.js\n- MongoDB\n\n### Backend Setup\n1. Clone the repository:\n   ```sh\n     git clone https://github.com/arvindk2025/QuizCraft.git\n     cd QuizCraft\n   ```\n   \n2. Install backend dependencies:\n   ```sh\n    cd backend\n    npm install\n   ```\n   \n3. Set up environment variables:\n    Create a .env file in the backend directory with the following content:\n   ```sh\n    MONGO_URI=your_mongodb_connection_string\n    JWT_SECRET=your_jwt_secret\n   ```\n\n4. Start the backend server:\n   ```sh\n    npm run dev\n   ```\n\n###  Frontend Setup\n\n1. Install frontend dependencies:\n``` sh\n    cd ../frontend\n    npm install\n```\n\n2. Start the frontend server:\n``` sh\n    npm run dev\n```\nThe application should now be running, with the frontend accessible at http://localhost:5173 and the backend at http://localhost:3000.\n\n### API Endpoints\n#### Auth\nPOST /api/auth/register: Sign Up User.\nPOST /api/auth/login: Authenticate admin/user and return a JWT token.\n\n#### Admin\nGET /api/admin/quizzes: Get all quizzes.\n\nPOST /api/admin/quizzes: Add a new quiz.\n\nPUT /api/admin/quizzes/:id: Update a quiz.\n\nDELETE /api/admin/quizzes/:id: Delete a quiz.\n\nGET /api/admin/quizzes/:id/questions: Get all questions for a quiz.\n\nPOST /api/admin/quizzes/:id/questions: Add a new question to a quiz.\n\nPUT /api/admin/questions/:id: Update a question.\n\nDELETE /api/admin/questions/:id: Delete a question.\n\nGET /api/admin/scores: Get scores for all users or a particular quiz.\n\n#### User\nGET /api/quizzes: Get all available quizzes.\n\nPOST /api/quizzes/:id/attempt: Attempt a quiz.\n\nGET /api/users/:id/attempts: Get all attempts for a user\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farvindk2025%2Fquizcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farvindk2025%2Fquizcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farvindk2025%2Fquizcraft/lists"}