An open API service indexing awesome lists of open source software.

https://github.com/claudiu28/ticketing-app-csharp

C# desktop ticketing system with secure authentication, real-time updates via gRPC, customer search, and Next.js admin match management.
https://github.com/claudiu28/ticketing-app-csharp

bcrypt csharp efcore grpc jwt nextjs swagger winforms

Last synced: about 2 months ago
JSON representation

C# desktop ticketing system with secure authentication, real-time updates via gRPC, customer search, and Next.js admin match management.

Awesome Lists containing this project

README

          

# 🏀 Ticketing System - C#

A desktop system for managing tickets to a basketball tournament. The application provides secure authentication, ticket sales, search, and logout. Connected clients receive live updates about seat availability.
Match administration (CRUD) is handled through a separate Next.js web module.

---

## ✨ Main Features

### 🔑 Login
- Cashier authenticates with username & password (passwords stored using **BCrypt**).
- On success, the desktop application opens, showing the list of matches.

### 🎟️ Ticket Sales
- Sell tickets by entering **customer name**, **address**, and **number of seats**.
- All active clients instantly see updated seat availability (**Observer pattern with gRPC streaming**).
- Sold-out matches are marked in red.

### 🔍 Search
- Search tickets by **name** and/or **address**.
- If multiple customers share the same name → all tickets are displayed.
- Results include: customer, address, match, and seats.

### 🚪 Logout
- Session invalidation.
- Clean disconnection from the server.

### ⚙️ Match Management (Next.js)
- Web module for **CRUD operations** on matches: teams, stage (semifinal, final), price, capacity, date/time.
- Login with JWT token emitted

---

## 🧰 Tech Stack

- 💻 **Frontend Desktop:** C# **Windows Forms**
- 🔙 **Backend:** gRPC + EF Core + SQLite
- 🔐 **Auth:** JWT + BCrypt.Net
- ⚡ **Async & Live Updates:** Task-based async + gRPC streaming (Observer/Proxy pattern)
- 🌐 **Admin UI:** Next.js (pnpm) for match management
- 🗄️ **ORM/DB:** EF Core, SQLite
- 📖 **API Documentation:** Swagger (OpenAPI)

---

## 🖼️ Screenshots