Skip to content

vktr7601/evently

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌟 About The Project

Evently

Evently is a full-stack event management platform built with a modern, cloud-native microservices architecture. It enables users to discover, create, and manage events with a seamless ticketing experience and secure global payments powered by Stripe.

By moving away from a traditional monolithic approach, Evently provides a highly scalable, event-driven solution designed to handle the complexities of real-time event management.

🚀 Key Technical Features

  • 📦 Microservices Architecture – Deconstructed into 5+ specialized services (User, Event, Booking, Payment, Notification). Each service maintains strict Domain Isolation with its own dedicated logical PostgreSQL database, ensuring data autonomy and a clean separation of concerns.
  • ⚡ Asynchronous Communication – Orchestrated via Apache Kafka. High-latency operations like email notifications are offloaded to an event bus, ensuring the user experience remains fast and uninterrupted.
  • 🛣️ API Gateway & Routing – A centralized entry point built with Spring Cloud Gateway (Port 9000). It provides a clean abstraction layer for the frontend, dynamically routing requests while masking the complexity of the internal microservice network.
  • 🔍 Service Discovery – All services dynamically register with a Netflix Eureka server. This enables a self-healing environment where services can scale horizontally or restart without the need for hardcoded IP addresses.
  • 🛡️ Stateless JWT Security – Implements robust authentication using JSON Web Tokens (JWT). The Gateway validates the identity once, then securely propagates the user's security context across the entire ecosystem.

(back to top)

Built With

Frontend

  • React
  • React Router
  • Bootstrap
  • Axios
  • Stripe

Backend

  • Java
  • Spring Boot
  • Spring Security
  • Apache Kafka
  • PostgreSQL
  • Redis

Infrastructure

  • Docker
  • AWS S3
  • Stripe

(back to top)

Project Structure

evently/
├── app/                      # React frontend
│   ├── src/
│   │   ├── api/              # Axios client and API calls
│   │   ├── components/       # Reusable UI components
│   │   ├── pages/            # Route-level page components
│   │   └── constants/        # API routes and constants
│   └── Dockerfile
├── server/                   # Spring Boot microservices
│   ├── evently-gateway/      # API Gateway
│   ├── eureka-server/        # Service discovery
│   ├── user-service/
│   ├── events-service/
│   ├── booking-service/
│   ├── payment-service/
│   ├── notification-service/
│   └── pom.xml               # Parent POM
├── docker-compose.yaml
└── init.sql                  # Database initialization

High Level Diagram

Evently

Techical Aspects

Technical Architecture & Port Map
──────────────────────────────────────────────────────────────────────────
Frontend (React) ──▶ API Gateway (9000) ──▶ [Service Discovery (Eureka: 8761)]
                                          │
                                          ├── User Service         (8085)
                                          ├── Events Service       (8082)
                                          ├── Booking Service      (8081)
                                          ├── Payment Service      (8084)
                                          └── Notification Service (8083)
                                          │
        [ Shared Event Bus ] ◀────────────┴──────────▶ Apache Kafka (9092)

🛠️ Features

🔐 Authentication & Profile

  • User Access: Secure registration and login using JWT-based stateless authentication.
  • Role-Based Control: Granular access levels for Users vs. Admins.
  • Profile Management: Users can manage personal info, view owned tickets, and track followed artists/venues.

📅 Event Management

  • Discovery: Browse events
  • Deep Dives: Detailed event views including artist lineups, location info, and real-time availability.
  • Admin Tools: Full CRUD capabilities for creating, editing, and managing event listings.

🎫 Booking & Payments

  • Stripe Integration: Secure, industry-standard checkout powered by Stripe.
  • Promo Engine: Admin-managed promo codes that users can apply at checkout for dynamic pricing.

🔔 Notifications (Kafka Driven)

  • Email Service: Automated emails for registration, order confirmations, and updates—processed asynchronously via Apache Kafka.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors