A comprehensive fullstack event management system built with React, Express.js, and PostgreSQL. Developed collaboratively by a team of 4 developers as a university project.
Note: This is a fork of the original project. I was one of the core developers contributing to both frontend and backend implementation.
A complete system for managing events, reservations, registrations, staff assignments, payments, expenses, and attendance tracking. Built with modern web technologies and following enterprise-grade patterns.
- Event Management: Create, edit, and manage events
- Reservation System: Reserve places for events
- Registration Management: Track event attendees
- Staff Assignment: Assign personnel and roles to events
- Payment Processing: Handle event payments and financial tracking
- Expense Tracking: Monitor and categorize event expenses
- Attendance Control: Check-in system for registered attendees
- Financial Reports: Generate comprehensive financial and attendance reports
- User Authentication: Secure session-based authentication
- Role-Based Access Control (RBAC): Granular permission system
The project implements a Business Objects (BO) pattern with a centralized dispatcher:
Frontend → API Call (tx = "Object.method") → Backend /api → Dispatcher → BO → Database
Frontend
- React 19 with TypeScript
- Vite (build tool)
- React Router v7
- Modern CSS
Backend
- Node.js + Express.js
- PostgreSQL database
- Zod validation
- bcryptjs for password hashing
- express-session for authentication
- Security middleware: helmet, CORS, rate limiting
Backend (eventSystem_Back/src/BO/)
Auth.js- Authentication and sessionsUsers.js- User managementEvents.js- Event operationsReservations.js- Place reservationsRegistrations.js- Attendee registrationStaffing.js- Staff assignmentRoles.js- Personnel rolesPayments.js- Payment processingExpenses.js- Expense trackingReports.js- Financial and attendance reportsAttendance.js- Attendance control
Frontend (eventSystem_Front/src/BO/)
- Client wrappers that communicate with backend via
/api
- Node.js v18+
- PostgreSQL (configured database instance)
- npm
- Clone the repository
git clone https://github.com/cgds1/eventSystem.git
cd eventSystem- Backend Setup
cd eventSystem_Back
npm installCreate .env file:
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
SESSION_SECRET=your_secret_key
PORT=3000Start backend:
npm run dev # Development
npm start # Production- Frontend Setup
cd eventSystem_Front
npm install
npm run devFrontend will be available at http://localhost:5173
Backend API at http://localhost:3000
- Session-based authentication with PostgreSQL storage
- RBAC system with profile-based permissions
- Protected routes on frontend and backend
- Rate limiting for DDoS protection
- Password hashing with bcryptjs
- Middleware validation on all endpoints
eventSystem/
├── eventSystem_Back/ # Backend (Node.js + Express)
│ ├── src/
│ │ ├── BO/ # Business Objects
│ │ ├── data/ # Data access layer
│ │ ├── middlewares/ # Express middlewares
│ │ └── server.js # Entry point
│ └── configs/ # Configuration
│
└── eventSystem_Front/ # Frontend (React + Vite)
├── src/
│ ├── BO/ # BO wrappers
│ ├── components/ # React components
│ ├── context/ # React contexts
│ └── pages/ # Application pages
└── package.json
This project was developed by a team of 4 students:
- Carlos Díaz - Fullstack Developer
- Juan Villasmil - Lead Developer
- Alberto Martinez - Developer
- Renny Zambrano - Developer
Developed as a university project at Universidad Rafael Urdaneta, demonstrating practical application of:
- Fullstack development
- Database design
- API architecture
- Team collaboration
- Software engineering best practices
This project is part of academic work. Please contact the original repository owners for usage rights.
- Original Repository: jdvillasmil/eventSystem
- My Profile: cgds1
⭐ If you find this project interesting, please star the original repository!