Skip to content

Zaiidmo/Eventify-API

πŸŽ‰ Eventify API

Eventify API is a powerful, Dockerized backend built with NestJS for managing events, users, and registrations.
It provides secure authentication, efficient database integration, and CI/CD automation β€” ideal for both small and enterprise-scale event platforms.

NestJS MongoDB Docker JWT CI/CD License


πŸš€ Overview

Eventify provides the backbone for your event management ecosystem.
It enables users to create, discover, and register for events, manage profiles, and authenticate securely via JWT.
Built on NestJS and MongoDB, it’s fully containerized for scalability and CI/CD-ready.


✨ Features

  • πŸ” User Authentication β€” Secure JWT-based login and registration.
  • πŸ—“οΈ Event Management β€” Create, edit, and explore events effortlessly.
  • 🧩 Database Integration β€” Seamless data persistence via Mongoose.
  • ☁️ Cloud Storage (AWS S3) β€” Secure upload and retrieval of event images with automatic URL generation.
  • 🐳 Dockerized Architecture β€” Ready-to-deploy image for any environment.
  • βš™οΈ CI/CD Pipeline β€” GitHub Actions automate testing, building, and Docker deployment.

🧠 Tech Stack

Layer Technology
Framework NestJS
Database MongoDB (Mongoose)
Authentication JWT
Containerization Docker
CI/CD GitHub Actions

βš™οΈ Setup & Installation

1️⃣ Prerequisites

Ensure you have:

  • Docker installed
  • Node.js (if running locally)
  • A Docker Hub account (for image pushing)

2️⃣ Clone Repository

git clone https://github.com/zaiidmo/eventify-api.git
cd eventify-api

3️⃣ Environment Configuration

Create a .env file using the provided example:

cp .env.example .env

🧩 Installation Options

🐳 Using Docker

Build and run the image:

docker build -t eventify-api .

Then access the API at http://localhost:3000.

πŸ’» Without Docker

Install dependencies and run the app locally:

npm install
npm run start

πŸ‹ Dockerizing the Application

This project includes a Dockerfile for quick containerization.
To build your image manually:

docker build -t yourusername/eventify-api:latest .

Push to Docker Hub:

docker push yourusername/eventify-api:latest

πŸ§ͺ Running Tests

Run all test suites:

npm test

Tests include unit, integration, and e2e coverage for controllers and services.


πŸ”„ CI/CD with GitHub Actions

Eventify’s CI/CD pipeline automates testing and Docker image publishing.
The workflow performs the following steps:

  1. Lint and build the application
  2. Run automated tests
  3. Build the Docker image
  4. Push the image to Docker Hub upon success

You can visualize or edit this under .github/workflows/ci.yml.


πŸ“˜ API Documentation

Full API reference is generated automatically (Swagger integration recommended).
Once deployed, access docs via:

http://localhost:3000/api/docs

🀝 Contributing

Contributions are always welcome!
To contribute:

  1. Fork the repo
  2. Create a branch (git checkout -b feature-name)
  3. Commit (git commit -am "Add feature")
  4. Push and open a Pull Request

Refer to CONTRIBUTING.md for contribution guidelines.


🧩 Roadmap

  • Add event categories & filters
  • Integrate payment gateway for premium events
  • Deploy production pipeline on AWS ECS
  • Add Swagger docs auto-generation

πŸ›‘οΈ Security

Report any security issues responsibly via email: vlphadev@gmail.com
See SECURITY.md for details.


πŸͺͺ License

Licensed under the MIT License β€” see LICENSE.


πŸ’¬ Contact & Community

Maintained by Zaiid Moumni
πŸ“§ Contact: vlphadev@gmail.com
Join discussions and feature ideas in Issues & PRs.


β€œBuilt with ❀️ using NestJS β€” scalable, modular, and open.”

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published