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

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

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