Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chubkey3/blacklister
https://github.com/chubkey3/blacklister
Last synced: about 7 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/chubkey3/blacklister
- Owner: chubkey3
- Created: 2024-10-31T08:29:20.000Z (17 days ago)
- Default Branch: master
- Last Pushed: 2024-10-31T09:57:10.000Z (17 days ago)
- Last Synced: 2024-10-31T10:19:00.907Z (17 days ago)
- Language: TypeScript
- Size: 87.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Blacklister
CRUD application that manages a database of blacklisted phone numbers
Note: API documentation can be found by running application and visiting localhost:3000/docs
# Technologies Used
- NestJS
- Jest
- Postgresql
- GCP (deployment)
- Docker (CI/CD)
- Postman (testing)# Design Process
1. Brainstormed basic project structure (e.g routes and deployment structure), chose appropriate technologies for use case, and created Git repository
2. Chose NestJS as backend framework and learned it for the firs time using offical docs and ChatGPT
3. Created basic api routes to handle creation and deletion of objects
4. Integrated database with project, desiged schemas for data, and linked to managed Postgresql database on GCP
5. Created and tested helper function to convert all phone number formats to E.164
6. Deployed project to cloud using Google Cloud Run by containerizing project with Dockerfile
7. Improved Error handling of API routes and integrated Swagger to provide documentation for API routes
8. Tested all API routes using Postman and GCP SQL Studio
9. Finalized project by linting, adding comments, and improving readability of code# To Run
1. Configure .env to include DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, and DB_DATABASE
2. run `npm install` to download necessary packages
3. run `npm build` to build project
4. run `npm run start:prod` to run projector Docker it :) (my personal choice but don't forget the .env configuration)