This campaign management system aims primarily to perform a complete maintenance review of pre-established business rules for creating campaigns across various segments.
-
- NestJS is a progressive Node.js framework for building efficient and scalable server-side applications. It is built with TypeScript and leverages the power of modern JavaScript, providing a modular architecture and dependency injection.
-
- Prisma is an open-source next-generation ORM (Object-Relational Mapping) for Node.js and TypeScript. It simplifies database access and provides a type-safe API for working with databases.
-
- Jest is a delightful JavaScript testing framework maintained by Facebook, designed to ensure correctness in any JavaScript codebase. It is particularly popular for testing React applications but is versatile enough for any JavaScript project.
-
- Docker is an open-source platform that automates the deployment, scaling, and management of applications using containerization. It allows developers to package applications and their dependencies into containers, ensuring consistency across different environments.
POST /campaign
Parameters | Type | Example Value |
---|---|---|
name |
string |
Example Campaign |
startDate |
Date |
10/10/2024 |
endDate |
Date |
11/10/2024 |
category |
CategoryType |
MARKETING |
GET /campaign?status={{status}}
Query Parameter | Type | Example Value |
---|---|---|
status |
StatusType |
ACTIVE |
GET /campaign/{{id}}
Query Parameter | Type | Example Value |
---|---|---|
id |
string |
7d512388-108f-48ff-9982-4ac774678f75 |
UPDATE /campaign/{{id}}
Query Parameter | Type | Example Value |
---|---|---|
id |
string |
7d512388-108f-48ff-9982-4ac774678f75 |
Parameter | Type | Example Value |
---|---|---|
campaign DTO |
CampaignTypeDTO |
DTO value |
DELETE /campaign/{{id}}
Query Parameter | Type | Example Value |
---|---|---|
id |
string |
7d512388-108f-48ff-9982-4ac774678f75 |
This route turn the status type to PAUSED, he stays in database
GET /campaign
- Every route and testing can be checked on Postman Collection
- When running the project, a /docs route will be available to access the documentation. This route provides an easy way for developers and users to view the API documentation, including endpoints, request/response formats, and any other relevant information about the application's functionality.
The system currently presents an MVP of a scalable project for the maintenance and management of an online and/or offline campaign platform. The MVP includes functional routes and precise error handling following the proposed business model. Suggested improvements for the next sprints include:
- A more robust business model for linking campaigns to users.
- A JWT login system with necessary information to ensure that data is stored securely in the database, with encrypted passwords.
- A user-friendly interface following good usability standards, considering Nielsen's heuristics and best UI practices.
POST /auth/login
Parâmetro | Type | Default Value |
---|---|---|
email |
string |
[email protected] |
GET /auth/signup
Parâmetro | Type | Default Value |
---|---|---|
email |
string |
[email protected] |
username |
string |
Example Test |
password |
string |
Ex@m!ple3 |
A folder structure following Clean Architecture was used, which can be better understood below:
----------------------------- ----------------------------
| Presentation | | Application |
|----------------------------| |----------------------------|
| | | |
| Controllers, Decorators | | DTOs, Services |
| responses | | Regras de negócio |
---------------------------- ----------------------------
---------------------------- ----------------------------
| Domain | | Infrastructure |
|----------------------------| |----------------------------|
| | | |
| Entities, Modules | | Database config, Models |
| Providers | | Repositories, |
---------------------------- ----------------------------
To initiate the project, open your bash within the project folder and start with:
npm install
or
yarn
Start Prisma
npx prisma generate
To run the tests:
npm run test
or
yarn run test
To start the project:
npm run start:dev
or
yarn run start:dev
- Pedro Lucas Lopes Paraguai I have always been determined about what I want as a developer, curious to learn new technologies, and deepen my knowledge in those I work with. Five years ago, I entered the market aiming to showcase my potential by bringing innovations to both Front-end and Back-end realms within the web.