Ollie B

URL Shortener

A URL shortening system that collects metrics and demographics from link clicks.

Posted on Feb 7, 2025, Updated on Jun 25, 2025

URL Shortener

This project is currently in development and not yet production-ready.

GitLab Tag

Gitlab Pipeline Status

Gitlab Pipeline Status

Gitlab Pipeline Status

Shortly is an in-development URL shortener, designed to have an intuitive mobile-first interface and a clean, modern design.

šŸš€ Features

  • Mobile-first, responsive interface
  • Clean and modern design
  • Shorten and manage links
  • Analytics and link tracking (planned)

šŸ› ļø Running Locally for Development

# Clone the repository

git clone https://gitlab.beantech.uk/ollie/shortly.git
cd shortly

# Install dependencies

npm install

# Run locally

npm run dev

āš™ļø Configuration

Create a .env file in the project root:

MONGODB_URI=<YOUR_DATABASE_URI>
AUTH_SECRET=<YOUR_SECRET>
AUTH_URL=http://localhost:3000

Refer to .env.example.

šŸ“† Deployment

This project uses GitLab CI/CD to manage deployment:

main branch → Base Pipelines

pre-production branch → Publishing Pipelines

production branch → Deployment Pipelines

Refer to .gitlab-ci.yml for full pipeline configuration.

šŸ“ Project Structure

shortly/
ā”œā”€ā”€ kubernetes/ # Kubernetes deployment template
ā”œā”€ā”€ src/ # Application source code
│ ā”œā”€ā”€ app/ # Page and route files
│ ā”œā”€ā”€ components/ # Page components
│ ā”œā”€ā”€ interfaces/ # Interface definitions
│ ā”œā”€ā”€ lib/ # Utility files
│ ā”œā”€ā”€ models/ # Database models
│ ā”œā”€ā”€ styles/ # CSS definitions
│ ā”œā”€ā”€ types/ # Type definitions
ā”œā”€ā”€ scripts/ # Helper scripts for building
ā”œā”€ā”€ server/ # Server source code
ā”œā”€ā”€ .env.example # Environment variables
ā”œā”€ā”€ package.json # Project metadata and scripts
└── README.md

šŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

šŸ™‹ā€ā™‚ļø Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.

šŸ“§ Contact

For support, please report an issue via discord.