Skip to content

Commit f65b224

Browse files
committed
DOCS: Update Docs
1 parent 414aa7a commit f65b224

6 files changed

Lines changed: 192 additions & 64 deletions

File tree

.env.example

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Environment Variables Example
2+
## App Configuration
3+
PORT=3000
4+
MONGO_ATLAS_URI=your_mongo_atlas_uri_here
5+
# Database connection string for MongoDB Atlas
6+
MAIL_HOST=your_mail_host_here
7+
MAIL_PORT=your_mail_port_here
8+
MAIL_USER=your_mail_user_here
9+
MAIL_PASSWORD=your_mail_password_here
10+
# Mail server configuration for sending emails
11+
JWT_SECRET=your_jwt_secret_here
12+
JWT_REFRESH_SECRET=your_jwt_refresh_secret_here
13+
JWT_EXPIRES_IN=1h
14+
JWT_REFRESH_TOKEN_EXPIRES_IN=7d
15+
JWT_ACCESS_EXPIRES_IN=15m

CODE_OF_CONDUCT.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Code of Conduct
2+
3+
To ensure a welcoming environment, we ask all contributors to uphold the following standards:
4+
5+
### ✅ Expected Behavior
6+
7+
- Show respect and empathy to others
8+
- Provide constructive feedback
9+
- Support inclusivity and collaboration
10+
11+
### 🚫 Unacceptable Behavior
12+
13+
- Harassment or discrimination
14+
- Trolling or offensive comments
15+
- Disrespect toward maintainers or contributors
16+
17+
Report violations confidentially to **vlphadev@gmail.com**.

CONRTIBUTING.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Contributing to Eventify API
2+
3+
We’re thrilled that you want to contribute to **Eventify API** 🎉
4+
5+
## 💡 How to Contribute
6+
7+
1. Fork this repository
8+
2. Create a new branch (`git checkout -b feature/your-feature`)
9+
3. Commit changes (`git commit -m "Add new feature"`)
10+
4. Push to your branch (`git push origin feature/your-feature`)
11+
5. Open a Pull Request 🚀
12+
13+
## 🧭 Guidelines
14+
15+
- Follow NestJS coding standards and linting rules
16+
- Include meaningful commit messages
17+
- Add or update unit tests when applicable
18+
- Ensure all tests pass before PR submission
19+
- Update the README or docs if relevant

README.md

Lines changed: 125 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,178 @@
1-
# Eventify - API
1+
# 🎉 Eventify API
22

3-
# Eventify API
3+
**Eventify API** is a powerful, Dockerized backend built with **NestJS** for managing events, users, and registrations.
4+
It provides secure authentication, efficient database integration, and CI/CD automation — ideal for both small and enterprise-scale event platforms.
45

5-
Eventify is a backend API built with **NestJS** designed for event management. It allows users to register, discover events, and participate in them. The API is fully **dockerized** for easy deployment and scalability. It uses **JWT** for authentication and integrates with a database for managing users, events, and registrations.
6+
<p align="left">
7+
<img alt="NestJS" src="https://img.shields.io/badge/NestJS-Framework-red">
8+
<img alt="MongoDB" src="https://img.shields.io/badge/Database-MongoDB-brightgreen">
9+
<img alt="Docker" src="https://img.shields.io/badge/Container-Docker-blue">
10+
<img alt="JWT" src="https://img.shields.io/badge/Auth-JWT-orange">
11+
<img alt="CI/CD" src="https://img.shields.io/badge/CI/CD-GitHub_Actions-black">
12+
<img alt="License" src="https://img.shields.io/badge/License-MIT-green">
13+
</p>
614

7-
This repository contains the backend logic for an event management system, providing the necessary endpoints for user authentication, event creation, and participation. It is suitable for both small and large-scale event management systems.
15+
---
816

9-
## Features
17+
## 🚀 Overview
1018

11-
- **User Authentication**: Users can register, log in, and securely authenticate using JWT.
12-
- **Event Management**: Users can discover events, view event details, and register for events.
13-
- **Dockerized API**: The backend is fully dockerized, allowing for easy containerization and deployment.
14-
- **Database Integration**: The API integrates with a database to manage user and event data.
19+
Eventify provides the backbone for your event management ecosystem.
20+
It enables users to **create, discover, and register for events**, manage profiles, and authenticate securely via JWT.
21+
Built on **NestJS** and **MongoDB**, it’s fully containerized for scalability and CI/CD-ready.
1522

16-
## Tech Stack
23+
---
1724

18-
- **NestJS**: A powerful Node.js framework for building scalable and maintainable server-side applications.
19-
- **JWT Authentication**: Secure authentication using JSON Web Tokens.
20-
- **Mongoose**: ODM for interacting with the database.
21-
- **Docker**: Containerization of the backend for easy deployment.
22-
- **MongoDB**: Used for storing data.
25+
## ✨ Features
2326

24-
## Setup & Installation
27+
- 🔐 **User Authentication** — Secure JWT-based login and registration.
28+
- 🗓️ **Event Management** — Create, edit, and explore events effortlessly.
29+
- 🧩 **Database Integration** — Seamless data persistence via **Mongoose**.
30+
- 🐳 **Dockerized Architecture** — Ready-to-deploy image for any environment.
31+
- ⚙️ **CI/CD Pipeline** — GitHub Actions automate testing, building, and Docker deployment.
2532

26-
Follow these steps to get the project up and running:
33+
---
2734

28-
### Prerequisites
35+
## 🧠 Tech Stack
2936

30-
- Docker
31-
- Node.js (if you’re not using Docker)
32-
- Docker Hub account (for pushing images)
37+
| Layer | Technology |
38+
|-------|-------------|
39+
| Framework | NestJS |
40+
| Database | MongoDB (Mongoose) |
41+
| Authentication | JWT |
42+
| Containerization | Docker |
43+
| CI/CD | GitHub Actions |
3344

34-
### Clone the repository
45+
---
3546

36-
```bash
37-
git clone https://github.com/zaiidmo/eventify-api.git
38-
cd eventify-api
39-
```
47+
## ⚙️ Setup & Installation
4048

41-
### Setup the environment variables
49+
### 1️⃣ Prerequisites
4250

43-
Since this application uses sensitive data (such as database credentials), it's important to configure your .env file properly. Do not commit your .env file to version control for security reasons.
51+
Ensure you have:
52+
- Docker installed
53+
- Node.js (if running locally)
54+
- A Docker Hub account (for image pushing)
4455

56+
### 2️⃣ Clone Repository
4557
```bash
46-
cp .env.exampl .env
58+
git clone https://github.com/zaiidmo/eventify-api.git
59+
cd eventify-api
4760
```
4861

49-
### Install dependencies
50-
51-
If you're not using Docker, you can install the dependencies by running:
62+
### 3️⃣ Environment Configuration
63+
Create a `.env` file using the provided example:
5264
```bash
53-
npm install
65+
cp .env.example .env
5466
```
5567

56-
### Run the application with docker
68+
---
5769

58-
To build and run the application in Docker, use the following command:
70+
## 🧩 Installation Options
71+
72+
### 🐳 Using Docker
73+
Build and run the image:
5974
```bash
6075
docker build -t eventify-api .
6176
```
62-
This will build the Docker image and start the API server. The application will be available on `http://localhost:3000`.
63-
64-
### Run the application without Docker
77+
Then access the API at **http://localhost:3000**.
6578

66-
If you're running the application directly on your local machine, you can start the server using:
79+
### 💻 Without Docker
80+
Install dependencies and run the app locally:
6781
```bash
82+
npm install
6883
npm run start
69-
```
84+
```
7085

71-
### Dockerizing the Application
86+
---
7287

73-
This project is dockerized for easy deployment. The Dockerfile defines how to build the image, while docker-compose.yml simplifies the setup process, especially for local development.
74-
To build the Docker image manually, you can run:
88+
## 🐋 Dockerizing the Application
7589

90+
This project includes a **Dockerfile** for quick containerization.
91+
To build your image manually:
7692
```bash
7793
docker build -t yourusername/eventify-api:latest .
7894
```
79-
80-
To push the Docker image to Docker Hub:
95+
Push to Docker Hub:
8196
```bash
8297
docker push yourusername/eventify-api:latest
8398
```
84-
### API Documentation
8599

100+
---
86101

87-
### Running Tests
102+
## 🧪 Running Tests
88103

104+
Run all test suites:
89105
```bash
90-
npm test
106+
npm test
107+
```
108+
Tests include unit, integration, and e2e coverage for controllers and services.
109+
110+
---
111+
112+
## 🔄 CI/CD with GitHub Actions
113+
114+
Eventify’s CI/CD pipeline automates testing and Docker image publishing.
115+
The workflow performs the following steps:
116+
1. Lint and build the application
117+
2. Run automated tests
118+
3. Build the Docker image
119+
4. Push the image to Docker Hub upon success
120+
121+
You can visualize or edit this under `.github/workflows/ci.yml`.
122+
123+
---
124+
125+
## 📘 API Documentation
126+
127+
Full API reference is generated automatically (Swagger integration recommended).
128+
Once deployed, access docs via:
91129
```
130+
http://localhost:3000/api/docs
131+
```
132+
133+
---
92134

93-
### CI/CD with Github Actions
135+
## 🤝 Contributing
94136

95-
This project uses GitHub Actions for continuous integration and deployment. The action is configured to:
96-
1. Build the project and run tests
97-
2. Dockerize the application
98-
3. Push the Docker image to Docker Hub if all tests pass.
137+
Contributions are always welcome!
138+
To contribute:
139+
1. Fork the repo
140+
2. Create a branch (`git checkout -b feature-name`)
141+
3. Commit (`git commit -am "Add feature"`)
142+
4. Push and open a Pull Request
99143

100-
### Contributing
101-
Feel free to fork this repository, submit issues, or create pull requests. Contributions are welcome!
144+
Refer to [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
145+
146+
---
102147

103-
### How to contribute:
148+
## 🧩 Roadmap
104149

105-
1. Fork the repository
106-
2. Create a new branch (`git checkout -b feature-name`)
107-
3. Commit your changes (`git commit -am 'Add new feature'`)
108-
4. Push to the branch (`git push origin feature-name`)
109-
5. Create a new Pull Request
150+
- [ ] Add event categories & filters
151+
- [ ] Integrate payment gateway for premium events
152+
- [ ] Deploy production pipeline on AWS ECS
153+
- [ ] Add Swagger docs auto-generation
154+
155+
---
156+
157+
## 🛡️ Security
158+
159+
Report any security issues responsibly via email: **vlphadev@gmail.com**
160+
See [SECURITY.md](SECURITY.md) for details.
161+
162+
---
163+
164+
## 🪪 License
165+
166+
Licensed under the **MIT License** — see [LICENSE](LICENSE).
167+
168+
---
110169

111-
## License
170+
## 💬 Contact & Community
112171

113-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
172+
Maintained by **[Zaiid Moumni](https://zaiid.moumni.uk)**
173+
📧 Contact: **vlphadev@gmail.com**
174+
Join discussions and feature ideas in Issues & PRs.
114175

115176
---
116177

117-
Thank you for using **Eventify API**. We hope this backend will help you build amazing event management applications!
178+
_“Built with ❤️ using NestJS — scalable, modular, and open.”_

SECURITY.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Security Policy
2+
3+
We take security seriously.
4+
If you discover a vulnerability in **Eventify API**, please report it privately.
5+
6+
## 📩 Reporting
7+
8+
Email: **vlphadev@gmail.com**
9+
Include:
10+
11+
- Description of the issue
12+
- Steps to reproduce
13+
- Expected vs. actual results
14+
15+
We’ll respond within 48 hours and coordinate a fix.

src/config/mailer.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export class MailerConfig {
1111
return nodemailer.createTransport({
1212
host: process.env.MAIL_HOST,
1313
port: process.env.MAIL_PORT,
14+
secure: true,
1415
auth: {
1516
user: process.env.MAIL_USER,
1617
pass: process.env.MAIL_PASSWORD,

0 commit comments

Comments
 (0)