EventFlow is a comprehensive full-stack web platform designed to showcase a modern, robust, and scalable software architecture. It serves as a signature project that demonstrates proficiency in backend design, reactive frontend development, and containerized infrastructure orchestration. The platform allows organizers to create and manage events, and for standard users to view them.
- Secure JWT Authentication: Complete registration and login flow with expiring JSON Web Tokens.
- Role-Based Access Control (RBAC):
- User (
USER): Standard role, can view events. - Organizer (
ORGANIZER): Privileged role, can create, edit, and delete events.
- User (
- Event Management (CRUD): Full Create, Read, Update, and Delete operations for events.
- Protected Endpoints: Event management routes are protected by guards that verify both authentication (JWT) and authorization (
ORGANIZERrole). - Reactive Frontend: A dynamic user interface built with React and TypeScript, which adapts based on the logged-in user's role.
- Containerized Environment: The entire stack (Backend, Frontend, Database) is orchestrated with Docker Compose, ensuring a consistent and easy-to-set-up development environment with a single command.
1. Authentication Pages
A responsive, two-column layout presents the brand and provides clear forms for new user registration and existing user login.
2. Standard User Dashboard
A standard USER sees the list of events but does not have access to administrative controls, ensuring data security.

3. Organizer Dashboard
An ORGANIZER has full access, with buttons to create, edit, and delete events, demonstrating role-based access control (RBAC).

4. Create Event Modal
An elegant modal allows organizers to add new events without leaving the main page, improving the user experience.

This project is built as a Monorepo, containing the backend and frontend applications in a single repository for streamlined management.
| Area | Technology | Purpose |
|---|---|---|
| Backend | NestJS (Node.js/TS) | Modular API, Dependency Injection, JWT & RBAC Auth |
| Frontend | React (TypeScript/Vite) | Reactive UI, state management, and API communication |
| Database | MySQL 8.0 | Relational data persistence |
| Infrastructure | Docker / Docker Compose | Containerization and orchestration of all services |
This diagram illustrates the flow of interaction between the services, all orchestrated by Docker Compose.
graph TD
subgraph "Docker Compose Environment"
A["React Frontend
(Container :5173)"] --> B["NestJS Backend API
(Container :3000)"];
B --> C["MySQL Database
(Container :3306)"];
end
D[User] --> A;
style A fill:#61DAFB,stroke:#333,stroke-width:2px
style B fill:#E0234E,stroke:#333,stroke-width:2px
style C fill:#4479A1,stroke:#333,stroke-width:2px
style D fill:#94a3b8,stroke:#333,stroke-width:2px
This project is designed to run with a single command, thanks to Docker.
- Docker Desktop installed and running.
- Git
-
Clone the repository:
git clone [https://github.com/](https://github.com/)[YOUR_USERNAME]/eventflow-platform.git cd eventflow-platform -
Create your environment file: Duplicate the
.env.examplefile and rename it to.env. Fill in the necessary variables (likeDB_ROOT_PASSandJWT_SECRET). -
Build and run with Docker Compose: This single command will build the images, start the containers, and connect the entire stack.
docker-compose up --build
-
Access the application:
- Frontend (React):
http://localhost:5173 - Backend (NestJS API):
http://localhost:3000
- Frontend (React):
For a detailed description of the endpoints, request/response models, and testing, please refer to a Postman / Thunder Client collection or the Swagger documentation generated by NestJS (if implemented).
- Register Endpoint:
POST /auth/register - Login Endpoint:
POST /auth/login - Profile Endpoint:
GET /auth/profile(JWT Protected) - Events Endpoints:
GET,POST,PATCH,DELETEat/events(Write routes protected byORGANIZERrole).
This project is licensed under the MIT License. See the LICENSE file for details.

