Skip to content

AlphaSudo/PulseEventProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PulseEvents

A modern, full-stack event management platform built with a microservices architecture. PulseEvents enables users to browse, book, and manage events with a robust, scalable, and secure system.


Table of Contents


Overview

PulseEvents is a microservices-based event management system featuring:

  • Frontend: Modern React/TypeScript SPA with Tailwind CSS
  • API Gateway: Central entry point for all backend APIs
  • Authentication Service: Secure user registration, login, and JWT-based authentication
  • Event Service: Comprehensive event CRUD, search, and attendee management
  • Booking Service: Event booking and user booking management
  • Config Server: Centralized configuration for all services
  • Discovery Server: Eureka-based service discovery

Architecture

sequenceDiagram
    participant User
    participant Frontend
    participant API Gateway
    participant Auth Service
    participant Event Service
    participant Booking Service
    participant Config Server
    participant Discovery Server
    User->>Frontend: Uses web UI
    Frontend->>API Gateway: REST API calls
    API Gateway->>Auth Service: /auth/*
    API Gateway->>Event Service: /events/*
    API Gateway->>Booking Service: /bookings/*
    API Gateway->>Discovery Server: Service lookup
    All Services->>Config Server: Load config
    All Services->>Discovery Server: Register/discover

Features

  • User Authentication: Secure registration, login, JWT tokens, role-based access
  • Event Management: Create, update, delete, search, and filter events
  • Booking System: Book events, view/cancel bookings, admin/organizer controls
  • Admin Panel: Manage events and users (admin role)
  • Responsive UI: Light/dark mode, mobile-friendly, i18n (English/Arabic)
  • Microservices: Each service is independently deployable and scalable
  • API Gateway: Unified entry point, CORS, security, and routing
  • Centralized Config: Dynamic config via Spring Cloud Config
  • Service Discovery: Eureka for dynamic service registration
  • Dockerized: Full Docker and Docker Compose support

Technology Stack

Frontend:

  • React 18, TypeScript, Vite, Tailwind CSS, React Router, i18next, Axios

Backend:

  • Java 17, Spring Boot 3, Spring Cloud, Spring Data JPA, PostgreSQL, Maven
  • Microservices: Authentication, Event, Booking, API Gateway, Config Server, Discovery Server

DevOps:

  • Docker, Docker Compose, Flyway (DB migrations), Nginx (frontend)

Project Structure

PulseEvents/
├── frontend/                # React SPA (Vite, Tailwind)
├── backend/
│   ├── api-gateway-service/
│   ├── authentication-service/
│   ├── booking-service/
│   ├── event-service/
│   ├── config-server-service/
│   └── discovery-server-service/
├── scripts/                 # Deployment and DB scripts
├── docker-compose.yml       # Multi-service orchestration
└── ...

Getting Started

Prerequisites

  • Node.js 18+, npm 9+ or yarn 1.22+
  • Java 17+
  • Docker & Docker Compose

1. Clone the Repository

git clone <repository-url>
cd PulseEvents

2. Local Development (Recommended)

  • Start infrastructure:
    docker-compose up -d postgres config-server discovery-server
  • Start backend services (in separate terminals):
    cd backend/authentication-service && ./mvnw spring-boot:run
    cd backend/event-service && ./mvnw spring-boot:run
    cd backend/booking-service && ./mvnw spring-boot:run
    cd backend/api-gateway-service && ./mvnw spring-boot:run
  • Start frontend:
    cd frontend
    npm install
    npm run dev
    # or
    yarn install
    yarn dev
  • Access the app at http://localhost:5173

3. Full Stack with Docker Compose

docker-compose up --build

Environment Variables

Copy backend/env.template to .env and fill in values:

# Common
EUREKA_URI=http://localhost:8761/eureka/
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=your_password
EVENT_DB_NAME=eventdb
BOOKING_DB_NAME=bookingdb
AUTH_DB_NAME=auth_db
JWT_SECRET=your-very-long-random-secret
SPRING_PROFILES_ACTIVE=dev

Frontend requires:

VITE_API_URL=http://localhost:8080

Deployment

  • Docker Compose: Orchestrates all services and database
  • Flyway: Handles DB migrations automatically on service startup
  • Production: Use Docker images from Docker Hub or build your own

Quick Start

docker-compose up -d

Access Points


API Highlights

Authentication Service

  • POST /auth/register — Register new user
  • POST /auth/login — Login, returns JWT
  • POST /auth/validate — Validate JWT
  • POST /auth/user-info — Get user info from JWT

Event Service

  • POST /events — Create event (admin/organizer)
  • GET /events — List all events
  • GET /events/{id} — Event details
  • PUT /events/{id} — Update event
  • DELETE /events/{id} — Delete event (admin)
  • PATCH /events/{id}/cancel — Cancel event
  • POST /events/{id}/attendees — Join event
  • DELETE /events/{id}/attendees — Leave event
  • GET /events/search — Search/filter events

Booking Service

  • POST /bookings — Book an event
  • GET /bookings/my-bookings — My bookings
  • GET /bookings/event/{eventId} — Bookings for event (organizer/admin)
  • GET /bookings — All bookings (admin)
  • DELETE /bookings/{id} — Cancel booking

Contributing

Contributions are welcome! Please open issues and pull requests. For major changes, discuss them first.


License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors