+ + + + + +
+ +___ +### Installation + +Clone the repo: + + git clone https://github.com/EuCarlos/landpage-api-express-nodemailer.git && cd landpage-api-express-nodemailer + +Install the dependencies using Yarn: + + yarn install // or -> npm install +### Environment variables +create an `.env` file like the `.env.example` and fill in your github credentials + +### Run the project +#### 1. Start docker + + docker-compose up -d + +#### 2. Run migrations + + yarn prisma migrate dev + +#### 3. Start a node server: + + yarn dev + +___ +## The project + +### General Objective: +Develop a landpage API and integrate with Front-end, theory and practice of acquired knowledge to reality. + +### Functional requirements +* [**FR001**] - The system must have a form that receives the following fields: Name, Email, Company and Website. +* [**FR002**] - The system should show a message after submitting the form. +* [**FR003**] - The system should send an email for notification about the expected content. +* [**FR004**] - The system must count the number of people who filled out the form. +* [**FR005**] - The system should show (somewhere on the landpage) comments on related content. + +### Non-functional requirements +* [**NFR001**] - The System must be responsive (adaptable for desktop, tablets and mobile phones). +* [**NFR002**] - The system should be developed using React and TypeScript. +* [**NFR003**] - The system must be connected to a message sending API (created by me). +* [**NFR004**] - The system should have a good interface for man and machine interaction. +* [**NFR005**] - The system should receive variables from environments. + + +### Project prototype + +The project is a landpage where a text (in Portuguese) with general information about the e-book is presented, with a form on the right side of the screen. On the website screen, comments from people who received your e-book by e-mail are also shown and report on the experience. At the bottom of the page there are buttons to access Github, LinkedIn, Dribbble, Instagram and the personal website of the landpage author. + +Front-End: [@EuCarlos/landpage-react](https://github.com/EuCarlos/landpage-react) + +## Directory structure +``` +. +├── prisma +│ ├── migrations +│ │ ├── ..._create_subscriber +│ │ │ └── migrations.sql +│ │ └── ..._create_message +│ │ └── migrations.sql +│ └── dev.db +├── src +│ ├── mail +│ │ ├── nodemail.ts +│ │ └── template.ts +│ ├── prisma +│ │ └── index.ts +│ ├── routes +│ │ └── routes.ts +│ └── server.ts +├── tests +│ └── http_test +│ └── routes.http +├── .gitignore +├── .env +├── docker-compose.yml +├── README.md +├── tsconfig.json +├── LICENSE +└── yarn.lock +``` + +____ ++Created with heart 💜 by Carlos Alves +
\ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 002f666..68686a3 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1,5 +1,5 @@ datasource db { - provider = "sqlite" + provider = "postgresql" url = env("DATABASE_URL") }