Skip to content

rockyhaque/eventlyze-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

259 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eventlyze – Your Non-Stop Event Planning Platform

A robust and scalable backend API for Eventlyze - Event Planner & Participation System, a secure event management platform enabling user authentication, event creation (public/private, free/paid), participant management, payment processing, reviews, and admin moderation. Designed with RESTful principles for modularity, performance, and scalability.

Live Link ➡️ https://eventlyze.vercel.app

Server Link ➡️ https://eventlyze-server.vercel.app

Client Repository ➡️ https://github.com/rockyhaque/eventlyze-client

Code Storm Team Members

💼 Name 🆔 Student ID 📧 Email
Md Rashed Ali WEB8 - 3007 tutorial.rashed@gmail.com
OMAR FARUK WEB9 - 2616 faruk2059@gmail.com
Rasibul Islam WEB8 - 1136 rasibul179@gmail.com
Md Nahiduzzaman WEB9 - 4276 nahiduzzaman964@gmail.com
Md Sakib Al Hasan WEB4 - 2247 mdsakibalhasanprogrammer1@gmail.com
MD Sohel Rana WEB8 - 2867 ranaot56@gmail.com
Rakibul Haq Roky WEB8 - 3916 rockyhaque71@gmail.com

🛠 Tech Stack

  • Node.js + Express – Backend Framework
  • PostgreSQL – Relational Database
  • Prisma ORM – Database Modeling & Querying
  • JWT – Secure Authentication
  • SSLCommerz – Payment Gateway Integration
  • RESTful API – Endpoint Management

📦 Features

  • User Authentication and Profile Management:

    • Secure user registration and login with JWT-based authentication, ensuring protected access to platform features.
    • Profile management allowing users to update personal details, manage notification preferences, and view participation history.
    • Password hashing and secure session handling to maintain data privacy and security.
  • Role-Based Access Control:

    • Distinct roles for Admin and User, enforcing granular permissions.
    • Admins have full access to monitor and moderate events, users, and content.
    • Users can perform actions limited to their own events, participation, and reviews.
  • Event CRUD Operations:

    • Create events with customizable attributes: title, date/time, venue/link, description, visibility (public/private), fee (free/paid), and format (online/offline).
    • Edit existing events to update details or adjust visibility and pricing.
    • Delete events with cascading removal of associated participant data and reviews.
    • Real-time synchronization of event data across the platform for consistent user experience.
  • Participant Workflows:

    • Join: Instant joining for free public events with automatic acceptance.
    • Request: Request-to-join functionality for private events, with pending status until host approval.
    • Approve/Reject: Hosts can approve or reject participant requests, with notifications sent to users.
    • Ban: Hosts can ban attendees to enforce community standards, preventing future participation in their events.
    • Invite: Hosts can send direct invitations to registered users, with a streamlined "Pay & Accept" flow for paid events.
    • Comprehensive participant management interface for hosts to view and manage attendee statuses.
  • Payment Processing with Status Tracking:

    • Integration with SSLCommerz for secure payment collection on paid events.
    • Real-time payment status updates (pending, completed, failed) for both hosts and attendees.
    • Automated pending request creation post-payment, awaiting host approval for event access.
    • Refund handling for declined invitations or canceled events, ensuring transparency.
  • Post-Event Review and Rating System:

    • Attendees can submit ratings and reviews post-event, visible on event details pages.
    • Review editing and deletion within a defined post-event period to ensure fairness.
    • Aggregated ratings displayed to help users assess event quality.
  • Admin APIs for Site-Wide Moderation:

    • Monitor all events, users, and content to ensure compliance with platform policies.
    • Delete inappropriate events or user accounts with audit logging for transparency.
    • Access to detailed activity reports for proactive community management.
  • Optional Notification System:

    • Real-time notifications for invitation receipts, request approvals, payment confirmations, and event updates.
    • Configurable notification preferences (email, in-app) for users to control their experience.
    • Batch notifications for hosts to communicate with multiple participants efficiently.

📁 Project Setup

  1. Clone the Repository

    git clone https://github.com/rockyhaque/eventlyze-server.git
    cd eventlyze-server
  2. Install Dependencies

    npm install
  3. Configure Environment
    Create a .env file in the root directory. Refer to .env.example for guidance:

    DATABASE_URL="postgresql://username:password@localhost:5432/event_planner"
    PORT=5000
    JWT_SECRET="your_jwt_secret_key"
    PAYMENT_GATEWAY_API_KEY="your_payment_gateway_api_key"
    PAYMENT_GATEWAY_SECRET="your_payment_gateway_secret"
    NODE_ENV="development"
    
  4. Run Prisma Migrations
    Initialize the database schema (ensure PostgreSQL is running locally):

    npx prisma migrate dev --name init
    npx prisma generate
  5. Start the Server

    npm run dev

    The server will run at http://localhost:5000.


📋 Additional Notes

  • Database: Ensure PostgreSQL is installed and running locally. Create a database named event_planner and update the DATABASE_URL in .env with your credentials.

  • Testing: Use the provided admin credentials for testing:

  • Deployment: Deployed on Vercel. Configure environment variables in the hosting platform’s dashboard.

📬 Contact
For issues or inquiries, reach out to Team Eventlyze. Thank you 💜

About

A powerful backend API for Eventlyze, an event management platform that supports user authentication, event creation (online/offline), participation, payments, reviews, and admin moderation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors