{"id":26358246,"url":"https://github.com/arbitroy/quizapp","last_synced_at":"2025-03-16T14:20:07.833Z","repository":{"id":281022541,"uuid":"943813275","full_name":"arbitroy/QuizApp","owner":"arbitroy","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-14T08:30:37.000Z","size":17421,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T09:32:46.282Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/arbitroy.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}},"created_at":"2025-03-06T10:01:39.000Z","updated_at":"2025-03-14T08:30:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c23293e-24f7-4b5b-bf0d-66e08f02dd35","html_url":"https://github.com/arbitroy/QuizApp","commit_stats":null,"previous_names":["arbitroy/quizapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbitroy%2FQuizApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbitroy%2FQuizApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbitroy%2FQuizApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbitroy%2FQuizApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arbitroy","download_url":"https://codeload.github.com/arbitroy/QuizApp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243878604,"owners_count":20362462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-03-16T14:20:07.291Z","updated_at":"2025-03-16T14:20:07.824Z","avatar_url":"https://github.com/arbitroy.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuizApp\n\nA full-featured web application for creating, managing, and taking quizzes built with ASP.NET Core Razor Pages.\n\n## Features\n\n### User Features\n\n- Take quizzes on various topics\n- Time-limited quiz sessions\n- Review quiz results and scores\n- Track learning progress through the dashboard\n- Account management\n\n### Administrator Features\n\n- Create and manage quizzes with a rich editor\n- Add multiple-choice questions with customizable options\n- Set time limits for quizzes\n- User management (create, edit, delete users)\n- Reset user passwords\n- View activity and statistics\n\n## Technology Stack\n\n- **Framework**: ASP.NET Core 9.0\n- **Frontend**: HTML, CSS, JavaScript, Bootstrap 5\n- **Data Access**: Entity Framework Core 9.0\n- **Database**: Microsoft SQL Server (LocalDB)\n- **Authentication**: ASP.NET Core Identity\n\n## Prerequisites\n\n- .NET 9.0 SDK\n- Visual Studio 2022 or later (recommended)\n- SQL Server LocalDB (included with Visual Studio)\n\n## Installation\n\n1. Clone the repository:\n\n   ```\n   git clone https://github.com/yourusername/QuizApp.git\n   ```\n2. Navigate to the project directory:\n\n   ```\n   cd QuizApp\n   ```\n3. Restore dependencies:\n\n   ```\n   dotnet restore\n   ```\n4. Apply database migrations:\n\n   ```\n   dotnet ef database update\n   ```\n5. Run the application:\n\n   ```\n   dotnet run\n   ```\n6. Open your browser and navigate to `https://localhost:5063` or `http://localhost:5063`\n\n## Initial Setup\n\nThe application will automatically create the database and seed it with:\n\n- A default admin user:\n\n  - Email: admin@quizapp.com\n  - Password: Admin123!\n- A sample quiz with basic questions\n\n## Project Structure\n\n- **/Data**: Contains database context and data seeding logic\n- **/Models**: Entity classes representing the domain model\n- **/Pages**: Razor Pages for the user interface\n  - **/Admin**: Administrator area\n    - **/Dashboard**: User statistics and information\n    - **/Quizzes**: Quiz management (create, edit, delete)\n    - **/Users**: User management\n  - **/Quizzes**: Quiz-taking functionality\n    - **Index.cshtml**: Available quizzes\n    - **Take.cshtml**: Quiz-taking interface\n    - **Result.cshtml**: Quiz results display\n\n## User Roles\n\nThe application supports two roles:\n\n1. **User**: Can take quizzes and view their own results\n2. **Administrator**: Full access to create/edit quizzes and manage users\n\n## Development Notes\n\n### Database Schema\n\n- **Quiz**: Basic quiz information (title, description, time limit)\n- **Question**: Quiz questions\n- **Option**: Answer options for questions\n- **QuizAttempt**: Records of quiz sessions\n- **UserAnswer**: User's selected answers\n\n### Authorization\n\nAuthorization is handled through ASP.NET Core Identity with policy-based authorization:\n\n```csharp\nbuilder.Services.AddAuthorization(options =\u003e\n{\n    options.AddPolicy(\"RequireAdministratorRole\", policy =\u003e policy.RequireRole(\"Administrator\"));\n});\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Commit your changes: `git commit -m 'Add some feature'`\n4. Push to the branch: `git push origin feature-name`\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgements\n\n- ASP.NET Core team for the excellent web framework\n- Bootstrap team for the frontend framework\n- Entity Framework Core team for the ORM\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbitroy%2Fquizapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farbitroy%2Fquizapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbitroy%2Fquizapp/lists"}