Skip to content

A URL-Shortening service built with Express.js, React.js, and Postgres

Notifications You must be signed in to change notification settings

BradleyBoutcher/brdly.org

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brdly.org

A fast & secure URL shortening service.

Structure

Client

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

Server

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

Database

We're running a simple postgres database with minimal required tables to store a large amount of URLs

Orchestration

Each component runs in a Docker container, allowing for customization and communications between containers to be determined at runtime.

Additional details

  • A single shortened URL is limited to 50 uses
  • A single shortened URL will expire after a set period of days

Running & Developing Locally

Simulate Production

  1. From the repository directory, run: docker-compose up -d --build

Development

  1. From the 'Database' directory, run: docker build -t postgres . && docker run -p 127.0.0.1:5432:5432/tcp postgres
  2. From the 'Client' directory, run: yarn start
  3. From the 'Server' directory, run npm start

Feedback

Feel free to contact me directly or submit an issue!

Planned features

  • 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.)

About

A URL-Shortening service built with Express.js, React.js, and Postgres

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published