Skip to content

akramoo/Ing-web-pro

Repository files navigation

Event Management Web Application

A microservices-based event management platform for organizing and participating in events (conferences, concerts, etc.).

📚 Documentation

DOCUMENTATION_INDEX.md - Complete documentation guide

Quick Links:

Architecture

Backend: Java Spring Boot microservices with Spring Cloud
Frontend: Angular
Database: PostgreSQL (per service)
Cache: Redis
Security: JWT authentication

Microservices

  1. Service Discovery (Eureka Server) - Port 8761
  2. API Gateway - Port 8080
  3. User Service - Port 8081 (User management, JWT auth, registrations)
  4. Event Service - Port 8082 (Event CRUD, media, statistics)
  5. Notification Service - Port 8083 (Email/push notifications)

User Roles

  • Organizers: Create events, upload media, manage participants, view statistics, send notifications
  • Participants: Search events, register/unregister, receive notifications

Prerequisites

  • Java 17+
  • Maven 3.8+
  • Node.js 18+ & npm
  • Docker & Docker Compose
  • PostgreSQL 15+
  • Redis 7+

Quick Start

Using Docker Compose (Recommended)

# Build and start all services
docker-compose up --build

# Access applications
# Eureka Dashboard: http://localhost:8761
# API Gateway: http://localhost:8080
# Angular Frontend: http://localhost:4200

Manual Setup

Backend Services

# Start Service Discovery
cd backend/service-discovery
mvn spring-boot:run

# Start API Gateway
cd backend/api-gateway
mvn spring-boot:run

# Start User Service
cd backend/user-service
mvn spring-boot:run

# Start Event Service
cd backend/event-service
mvn spring-boot:run

# Start Notification Service
cd backend/notification-service
mvn spring-boot:run

Frontend

cd frontend/event-management-ui
npm install
ng serve

Database Setup

Each microservice uses its own PostgreSQL database:

  • user_db - User Service
  • event_db - Event Service
  • notification_db - Notification Service

Tables are auto-created by Spring Boot JPA on startup.

API Documentation

Once services are running, access Swagger UI:

Authentication Flow

  1. Register: POST /api/users/register
  2. Login: POST /api/users/login (returns JWT token)
  3. Use token in Authorization: Bearer <token> header for protected endpoints

Project Structure

Ing-web-pro-vibe-code/
├── backend/
│   ├── service-discovery/      # Eureka Server
│   ├── api-gateway/            # Spring Cloud Gateway
│   ├── user-service/           # User & Registration Service
│   ├── event-service/          # Event Management Service
│   └── notification-service/   # Notification Service
├── frontend/
│   └── event-management-ui/    # Angular Application
├── infrastructure/
│   └── docker-compose.yml      # Docker orchestration
└── README.md

Development

Backend Development

Each microservice follows standard Spring Boot structure:

  • src/main/java/ - Java source code
  • src/main/resources/ - Configuration files
  • src/test/java/ - Unit tests

Frontend Development

cd frontend/event-management-ui
ng generate component components/event-list
ng generate service services/auth
ng serve --open

Testing

# Backend tests
cd backend/[service-name]
mvn test

# Frontend tests
cd frontend/event-management-ui
ng test

License

University Project - M2 Ing-web

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors