A product manager built for the Pineapple Inc.
- NodeJS v10 or greater
- Docker and Docker Compose
- Your ports 3000 and 4200 need to be freed to listen
- Run
npm installon both pine-api and pine-front folders - Run
npm run tscon both pine-api and pine-front folders - Run
docker-compose up -don pine-api folder, so postgres container may start
Server starts at port 3000
- Run
npm starton pine-api folder
Server starts at port 4200
- Run
npm starton pine-front folder
A table with all data about the users to login/logout
- id: number
- email: varchar
- password: varchar
- createdAt: datetime
- updatedAt: datetime
A table with all info about the pineapple products
- id: number
- name: varchar 50
- description: varchar 255
- rate: number
- imagePath: varchar
- createdAt: datetime
- updatedAt: datetime
- CI/CD file for the git platform I'm using (Travis - Github, GitlabCI Gitlab, Pipelines - Bitbucket, or even a CircleCI or Jenkins configuration), this facilitates development in a way we would assure some parts of our code are not broken because of updates
- Swagger documentation, so anyone that wanted to consume the API would only view a beautilful file with an intuitive layout
- Integration tests with the cloud provider, mostly to test permissions to methods, and view if resources are available
- Infrastructure as code file, such as Terraform or Cloudformation Stack, so it would be easier to deploy and update structures as we develop. With that there would be the need to develop a series of scripts to deploy the app
- Deployment jobs, so all the deploy in different environments, would be facilitated and configured only once, to be applied many times.
- Give a better way to impĺement inheritance in db model instancing as it is not recomended to not have any intellisense on manipulating data
- Put all requests in a route called 'api/vversionnumber' as it is a best practice and it facilitates routing from frontend to backend and vice versa
- Change the password hash method to salt hashing as it is safer (more dificult to crack)
- Change input manipulation as multer puts all form data in req.body instead of request.body
- CI/CD file for the git platform I'm using (Travis - Github, GitlabCI Gitlab, Pipelines - Bitbucket, or even a CircleCI or Jenkins configuration), this facilitates development in a way we would assure some parts of our code are not broken because of updates
- Automated tests, so it would be easier to assure things appear at the correct time and space
- Deployment jobs, so all the deploy in different environments, would be facilitated and configured only once, to be applied many times.
- Add a directive to dictate wheter there is an error depending on the the value of another control (confirm password)