/QuizApp

Simple quiz application backend written in .Net 6

Primary LanguageC#

QuizApp

This quiz application allows users to create and publish their own quizzes for others to solve. The app is designed to be user-friendly, allowing users to easily create and customize their quizzes, and to share them with others.

To get started, users can sign up for an account and create their own quizzes. Once a quiz has been created, users can publish it to make it available to other users. Other users can then search for and browse available quizzes, and select the ones they want to solve. The app keeps track of users' progress and scores, allowing them to see how they're doing and compare their results to others.

The app is built using modern web technologies, including Next for the frontend, Kotlin for mobile and .Net for the backend. It also makes use of authentication and authorization features to ensure that only authorized users can create and publish quizzes, and that users' data is kept secure.

๐Ÿ‘จโ€๐Ÿ’ป Author

๐Ÿงต Related

Here are some related projects

โญ Features

  • User sign up & sign in
  • JWT Authentication & Authorization
  • Quiz CRUD
  • Question CRUD
  • Refresh token mechanism

๐Ÿ“ฆ Packages

๐Ÿ”ท Environment Variables

To run this project, you will need to add some environment variables to either .Net Secret Manager or appsettings.json

full list of variables will be in a sample config file.

โœ Lessons Learned

I wanted this project to be highly structured and modular, to achive this i used a clean architecture approach and used CQRS pattern to implement further abstraction.

  • Structured Code & Modular Monolith design
  • CQRS pattern with Clean Architecture
  • Mediator pattern to implement CQRS
  • Creating a database design for quiz systems

๐Ÿ Optimizations

  • I avoided to use some heavy packages just for simple solutions.
  • I used linters to imply even further code structure and cleaning

๐Ÿšฉ Roadmap

  • Additional question types (True/False, Multiple Answers, ...)

  • Additional quiz types (Timed quiz, ...)

  • Code Refactoring

๐ŸŸข Run Locally

Clone the project

  git clone https://github.com/muammer-yilmaz/QuizApp.git

Go to the project directory

  cd my-project

Install dependencies

  dotnet restore

Start the server

  dotnet run

๐Ÿ’ป Tech Stack

Client: Next, TailwindCSS

Mobile: Android, Kotlin

Server: .Net, Entitiy Framework, PostgreSql, MongoDb

๐Ÿ“œ License

MIT

Feedback

If you have any feedback, please reach out to me muammercan68@gmail.com