https://github.com/jmrl23/portfolio-backend
portfolio website's backend
https://github.com/jmrl23/portfolio-backend
api backend backend-api portfolio-website portofolio rest-api
Last synced: 4 months ago
JSON representation
portfolio website's backend
- Host: GitHub
- URL: https://github.com/jmrl23/portfolio-backend
- Owner: jmrl23
- Created: 2024-08-03T13:04:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-26T16:45:42.000Z (about 1 year ago)
- Last Synced: 2025-05-12T13:51:04.749Z (about 1 year ago)
- Topics: api, backend, backend-api, portfolio-website, portofolio, rest-api
- Language: TypeScript
- Homepage: https://portfolio-backend-two-tau.vercel.app
- Size: 488 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Portfolio backend

backend server for portfolio website
## Quickstart
options on making things ready
- standalone (node.js)
1. make a `.env` file and fill out the required variables
1. run build (only if you wish to run the production/ build version)
1. run start [script](#scripts)
- docker
1. [fill](./docker-compose.yaml) the environment variables needed
1. run build [script](#scripts)
1. run `docker compose up -d`
## Features/ modules
- [cache](./src/modules/cache/)
- api endpoints optimized by cache
- uses redis under the hood
- [auth](./src/modules/auth/)
- generate api key
- [modular access](./src/modules/auth/authPermissions.json)
- revoke api key
- [emails](./src/modules/emails/)
- send email using SMTP
- [files](./src/modules/files/)
- [upload & delete](./src/modules/files/stores/filesStoreInterface.ts)
- custom files store ([factory](./src/modules/files/filesStoreFactory.ts))
- [projects](./src/modules/projects/)
- create, read, update, and delete operations
- [testimonials](./src/modules/testimonials/)
- generate testimonial key
- strategy to prevent spams
- create, read, and delete operations
## Scripts
| Script | Description |
| ---------- | ------------------------------------------- |
| build | build project |
| test | run test files |
| start | start (must build first) |
| start:dev | start on development mode (nodemon + swc) |
| start:prod | start on production mode (must build first) |
| format | format codes (prettier) |
| lint | lint codes (eslint) |
## Extras
- [frontend repository](https://github.com/jmrl23/portfolio)
## References
- [fastify-template](https://github.com/jmrl23/fastify-template)
- [cache-manager](https://www.npmjs.com/package/cache-manager)
- [Uniform Resource Identifier](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier)
- [google app passwords](https://myaccount.google.com/apppasswords)
- [prisma](https://www.prisma.io/)
- [swagger](https://swagger.io/)