Skip to content

Latest commit

 

History

History
179 lines (127 loc) · 4.45 KB

File metadata and controls

179 lines (127 loc) · 4.45 KB

🎉 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.”