Skip to content

cgds1/eventSystem

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎫 Event Management System

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.

React TypeScript Express.js PostgreSQL

Note: This is a fork of the original project. I was one of the core developers contributing to both frontend and backend implementation.

📋 Overview

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.

✨ Key Features

  • 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

🏗️ Architecture

The project implements a Business Objects (BO) pattern with a centralized dispatcher:

Communication Flow

Frontend → API Call (tx = "Object.method") → Backend /api → Dispatcher → BO → Database

Technology Stack

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

Business Objects

Backend (eventSystem_Back/src/BO/)

  • Auth.js - Authentication and sessions
  • Users.js - User management
  • Events.js - Event operations
  • Reservations.js - Place reservations
  • Registrations.js - Attendee registration
  • Staffing.js - Staff assignment
  • Roles.js - Personnel roles
  • Payments.js - Payment processing
  • Expenses.js - Expense tracking
  • Reports.js - Financial and attendance reports
  • Attendance.js - Attendance control

Frontend (eventSystem_Front/src/BO/)

  • Client wrappers that communicate with backend via /api

🚀 Getting Started

Prerequisites

  • Node.js v18+
  • PostgreSQL (configured database instance)
  • npm

Installation

  1. Clone the repository
git clone https://github.com/cgds1/eventSystem.git
cd eventSystem
  1. Backend Setup
cd eventSystem_Back
npm install

Create .env file:

DATABASE_URL=postgresql://user:password@localhost:5432/dbname
SESSION_SECRET=your_secret_key
PORT=3000

Start backend:

npm run dev    # Development
npm start      # Production
  1. Frontend Setup
cd eventSystem_Front
npm install
npm run dev

Frontend will be available at http://localhost:5173 Backend API at http://localhost:3000

🔒 Security Features

  • 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

📂 Project Structure

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

👥 Contributors

This project was developed by a team of 4 students:

🎓 Academic Context

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

📄 License

This project is part of academic work. Please contact the original repository owners for usage rights.

🔗 Links


⭐ If you find this project interesting, please star the original repository!

About

Fullstack event management system with React, Express.js, and PostgreSQL. Team project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 67.6%
  • JavaScript 20.6%
  • CSS 9.3%
  • HTML 2.5%