Project · 2026
EventBoard
A full-stack app to browse, create and RSVP to local events, with a weather forecast for each event's city, an admin panel and a one-command Docker setup.
- Type
- Project
- Year
- 2026
- Stack
- ReactASP.NET Core 8SQL ServerDocker
- acceptance criteria passing on a clean Docker start
- 0/15acceptance criteria passing on a clean Docker start
- command to run the whole stack
- 0command to run the whole stack
- roles: Admin and User
- 0roles: Admin and User
Problem & context
Built to show a complete, production-ready web app from end to end: a React front end on a tested ASP.NET Core API, with real sign-in, roles, a database and a one-command way to run it.
My contribution
- Built the whole app solo: React 19 + Vite front end and ASP.NET Core 8 Web API.
- JWT login with Admin and User roles.
- Events with filtering, image upload and Yes / Maybe / No RSVPs.
- Per-city weather forecasts from the OpenWeatherMap API.
- Admin panel: promote or disable users, manage events, see RSVP lists and statistics.
How it works
Key technical work
Roles and dashboards
Everyone can browse and create events; signed-in users get a personal dashboard; admins manage users and events.
Weather per event
Each event shows the forecast for its city, fetched from the OpenWeatherMap API.
One-command start
docker compose up starts SQL Server, the API and the nginx-served front end; migrations and seed data run on first start, and uploads and data persist in volumes.
Observable
A /health endpoint with Docker health checks, structured logs in Seq and Swagger API docs.
Architecture
- React 19 + Vite front end served by nginx.
- ASP.NET Core 8 Web API with Entity Framework Core.
- SQL Server 2022 with migrations and seed data on first start.
- Docker Compose: database, API, front end and Seq log server, with health checks between them.
- Design decisions recorded as ADRs in the repository.
Testing & validation
- xUnit unit tests for the auth and event services, with Moq.
- An integration test of the events API using WebApplicationFactory and an in-memory database.
- 15 acceptance criteria verified on a clean Docker start (14 July 2026), documented in EVIDENCE.md.
- A UAT plan in the repository.