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.
- Host: GitHub
- URL: https://github.com/claudiu28/ticketing-app-csharp
- Owner: claudiu28
- Created: 2025-08-24T10:44:08.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-08-24T11:07:37.000Z (10 months ago)
- Last Synced: 2025-08-24T17:04:00.553Z (10 months ago)
- Topics: bcrypt, csharp, efcore, grpc, jwt, nextjs, swagger, winforms
- Language: C#
- Homepage:
- Size: 478 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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







