Simple URL shortener project
- TypeScript 90%
- Nix 10%
| .circleci | ||
| src | ||
| test | ||
| .eslintrc.js | ||
| .gitignore | ||
| .prettierrc | ||
| LICENSE | ||
| nest-cli.json | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| shell.nix | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
A simple URL shortening service.
Description
A project meant to develop my NestJS skills, as well as practice real world implementations of CI/CD and dockerization.
Goals
- Minimally viable simple URL shortening API
- Create short URLs
- Redirect shortened URL to the original
- Simple statistics about each shortened URL
- CI - Build, Tests
- CD - Deployment
- Docker build
Development environment
Nix
Run the following on the root folder
$ nix-shell
Others
Manually install the requirements
- NodeJS 18.x
- PNPM
Installation
$ pnpm install
Running the app
# development
$ pnpm run start
# watch mode
$ pnpm run start:dev
# production mode
$ pnpm run start:prod
Test
# unit tests
$ pnpm run test
# e2e tests
$ pnpm run test:e2e
# test coverage
$ pnpm run test:cov
License
This project is GNU General Public License v3.0 licensed.