Skip to content

krivolapovdev/code-output-quiz

Repository files navigation

logo

Code Output Quiz

MIT License Repo Size Pull Requests Open Issues Last Commit CI/CD

Made with ❀️

πŸ“š Table of Contents

πŸ“‘ Introduction

Code Output Quiz is an open-source platform where users test their programming knowledge by predicting the output of code snippets.

Level up your coding skills with unique, auto-generated multiple-choice questions designed to challenge how well you understand real-world behavior of code.

Choose your programming language, set your difficulty level, and start solving!

🌐 Site

🧠 Features

  • 🧬 AI-powered quiz generation.
  • 🌐 Language & difficulty filters.
  • πŸ”’ Secure authentication using JWT.
  • πŸ“ˆ Real-time observability (Prometheus, Grafana, Loki, Zipkin).
  • πŸ“¦ Microservice architecture.
  • πŸšͺ API Gateway for unified routing and access control.
  • πŸ“¨ Kafka-powered event-driven communication.
  • πŸ–₯️ Responsive UI built with React & Tailwind CSS.
  • βš™οΈ DevOps-ready setup with Docker & GitHub Actions.

πŸ“¦ Quickstart

Want to run the project locally?

Prerequisites:

Note

The project is in active development. Expect frequent changes.

  1. Clone this repository:
    git clone https://github.com/krivolapovdev/code-output-quiz
    cd code-output-quiz
  2. Configure environment variables:
    cp .env.example .env
    nano .env
  3. Build and start all services using Docker:
    docker buildx bake -f docker-bake.hcl --load
    docker compose -f docker-compose-staging.yml up
  4. Open http://localhost in your browser.
  5. (Optional) Run initial script:
    ./scripts/init.sh

πŸ›  TechStack

🧩 Area 🧰 Technologies
Backend Spring Boot (WebFlux), PostgreSQL (R2DBC), Kafka, Redis, Eureka Server, Config Server, Flyway
Frontend React, Vite, Tailwind CSS, Zustand, Axios, Prism.js
Observability Prometheus, Grafana, Loki, Zipkin
Gateway Spring Cloud Gateway, NGINX
DevOps Docker, GitHub Actions

πŸ§‘β€πŸ’» Contributing

We welcome all contributions β€” code, documentation, ideas, and feedback!

If you'd like to help:

  1. 🍴 Fork the repository
  2. πŸ“¦ Create a new branch: git checkout -b feature/my-feature
  3. πŸ› οΈ Make your changes
  4. βœ… Commit with a clear message
  5. πŸ“¬ Open a pull request describing what you’ve done

You can contribute by:

  • 🎨 Improving the UI or UX
  • 🐞 Fixing bugs or improving performance
  • 🧩 Adding new quiz features or languages
  • πŸ“ Enhancing documentation or developer setup
  • πŸ“ˆ Improving observability or CI/CD workflows

πŸ’¬ Support

Encountering a bug? Have a question? Want to suggest a feature? We're here to help!

If you run into any problems while using the app or setting up the project, please don't hesitate to open an issue on GitHub.

Tip

The more details you provide β€” logs, screenshots, steps to reproduce β€” the faster we can help.

You can also check the existing issues list to see if your question has already been answered.

πŸ’– Like

If you find this project useful or interesting, please consider starring ✨ it on GitHub!

It helps others discover the project and motivates continued development.

πŸ“¬ Contact

🌐 Platform πŸ”— Link
πŸ“§ Email [email protected]
πŸ’¬ Telegram @krivolapovdev
:octocat: GitHub @krivolapovdev

βš–οΈ License

This project is licensed under the MIT License.