Qwitix API is the backend of a ticket sales platform for concerts and events. It was developed as part of a first-year university course project, using modern technologies.
- ⚙️ Built with ASP.NET Core as the main backend framework
- 🍃 Uses MongoDB as a document-oriented NoSQL database
- ☁️ Stores images and media files in Azure Blob Storage
- 💳 Integrates Stripe for secure and seamless online payments
- 🔐 Implements custom Google OAuth authentication with JWT token generation
- 🐳 Fully containerized with Docker, using
docker-compose
for multi-container orchestration - 🧱 Designed following SOLID principles and Onion Architecture for scalability and clean separation of concerns
- 🚀 Deployed to an Azure Virtual Machine
📦 For more details about deployment and infrastructure setup, see the Qwitix-Infra repository.
- Cloning the repository
git clone https://github.com/Fyz-dev/qwitix-api.git
- Environment setup
Duplicate the example environment file and fill in all required variables.
cp .env.example .env
Open .env in your favorite editor and provide the necessary configuration values (e.g. database connection string, Stripe keys, Azure credentials, JWT secrets, etc.).
- Run the project using Docker Compose
Once the .env file is configured, you can spin up the entire environment.
docker compose --env-file .env up
- Stripe CLI for local payment testing
To test Stripe webhooks locally, make sure you have the Stripe CLI installed. Then run the following command in a separate terminal.
stripe listen --forward-to localhost:8080/api/stripe/webhooks
📖 More information about Stripe CLI can be found in the official documentation Stripe
- 📦 That’s it!