A fast & secure URL shortening service.
Our front-end is running a standard react application that manages communication with the server and state management. - Our Dockerfile for the client generates a new build, and runs it within a Nginx reverse-proxy container
Our back-end is a secured Express.js application, handling the model, routes, and controller for communication with our database. - For development, we use Nodemon for quick rebuilds upon file changes
We're running a simple postgres database with minimal required tables to store a large amount of URLs
Each component runs in a Docker container, allowing for customization and communications between containers to be determined at runtime.
- A single shortened URL is limited to 50 uses
- A single shortened URL will expire after a set period of days
- From the repository directory, run:
docker-compose up -d --build
- From the 'Database' directory, run:
docker build -t postgres . && docker run -p 127.0.0.1:5432:5432/tcp postgres
- From the 'Client' directory, run:
yarn start
- From the 'Server' directory, run
npm start
Feel free to contact me directly or submit an issue!
- Lock API behind proxy only accessible by client
- Validate URL existence outside of domain
- Offer a selection of expiration time lengths (1 hr, 1 day, etc.)