Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atlink

Atlink is a full-stack URL shortener for creating, resolving, and managing short links. The project includes a React frontend and a Spring Boot backend, with Redis caching and optional Google Cloud Bigtable persistence.

This repository is a personal fork of the original project. The README focuses on the current architecture and the areas being continued or improved in this fork.

Features

  • Create short links from long URLs
  • Generate aliases and support custom aliases
  • Resolve short links and redirect to their original URLs
  • List and view link metadata
  • Cache redirect lookups with Redis
  • Support in-memory storage for local development and Bigtable for persistent storage
  • Provide a React-based web interface for link management

Tech Stack

  • Backend: Java 21, Spring Boot, Maven
  • Frontend: React, TypeScript, Vite
  • Cache: Redis
  • Database: Google Cloud Bigtable
  • Authentication: Spring Security and JWT

Project Structure

Atlink/
├── Back-End/       # Spring Boot API service
├── Front-End/      # React web application
├── docs/            # System and component documentation
└── scripts/         # Local development and test helpers

Architecture

React Frontend
      ↓
Spring Boot REST API
      ↓
Redis Cache
      ↓
Bigtable / In-Memory Storage

The backend uses a layered design with controllers, services, and repositories. Redis is checked first during redirect resolution; on a cache miss, the backend reads from the configured repository and can update the cache with the result.

API Overview

The current backend API includes:

  • POST /api/links — create a short link
  • GET /api/links — list links
  • GET /api/links/{alias} — retrieve link details
  • GET /r/{alias} — resolve and redirect a short link

Getting Started

Backend

cd Back-End
mvn spring-boot:run

The backend defaults to in-memory storage for local development. Bigtable and emulator configuration is available through the application profiles and configuration files in Back-End/src/main/resources/.

Frontend

cd Front-End
npm install
npm run dev

Useful frontend commands:

npm run build
npm run lint

Documentation

Roadmap

  • Improve local setup and API usage documentation
  • Expand backend and frontend test coverage
  • Complete Bigtable emulator and production deployment guidance
  • Continue refining the redirect path and cache behavior

GitHub About

Suggested repository description:

A full-stack URL shortener built with Spring Boot, React, Redis, and Google Cloud Bigtable.

Suggested topics:

url-shortener · spring-boot · react · typescript · redis · google-bigtable · google-cloud · full-stack

About

A full-stack URL shortener built with Spring Boot, React, Redis, and Google Cloud Bigtable.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages