URL shortener on Spring, AWS
Shortify
A full-stack URL shortener built with React, Spring, Java, MySQL, Docker, and AWS ECS.

Documentation
🔗 URL Shortener (Shortify)
A modern, full-stack URL shortening application that enables users to convert lengthy URLs into concise, shareable links. Built with a focus on scalability, performance, and seamless deployment, this project leverages containerization and cloud infrastructure for efficient CI/CD workflows.

🚀 Features
- Shorten long URLs into compact links
- Redirect users to the original URL upon accessing the short link
- Track analytics such as click counts and creation dates
- User-friendly interface for managing links
- Secure authentication using JWT
🛠️ Tech Stack
Frontend:
- React.js (Vite)
- Tailwind CSS
- ShadCN UI
- Redux
- Recharts.js
Backend:
- Java
- Spring Boot
- Spring Security
- JWT
- MySQL
DevOps & Deployment:
- Docker
- AWS Elastic Container Service (ECS)
- GitHub Actions for CI/CD
📸 Screenshots
Auth Page

Analytics Dashboard

🧰 Getting Started
Prerequisites
- Node.js and npm installed
- Java 17 or higher
- Docker installed
- MySQL database instance
Installation
-
Clone the repository:
git clone https://github.com/Hitesh-s0lanki/url-shortener.git cd url-shortener -
Set up environment variables:
- Create a
.envfile in bothfrontend/andbackend/directories. - Refer to
.env.examplefiles for required variables.
- Create a
-
Install dependencies:
Frontend:
cd frontend npm installBackend:
cd ../backend ./mvnw clean install -
Run the application:
Frontend:
npm run devBackend:
./mvnw spring-boot:run
The frontend will be accessible at http://localhost:3000 and the backend API at http://localhost:8080.
🐳 Docker Deployment
-
Build Docker images:
docker-compose build -
Run containers:
docker-compose up
The application will be available at http://localhost:3000.
☁️ AWS ECS Deployment
The application is containerized and deployed on AWS ECS using Fargate. CI/CD pipelines are configured with GitHub Actions to automate the build and deployment process.
🔧 CI/CD Pipeline
Continuous Integration and Deployment are handled via GitHub Actions:
- Code Push: Triggers the CI pipeline.
- Build & Test: Runs tests and builds Docker images.
- Push to Registry: Uploads images to Amazon ECR.
- Deploy to ECS: Updates the ECS service with the new image.
🔮 Future Enhancements
- Implement user authentication and authorization
- Add support for custom short URLs
- Integrate with Redis for caching
- Enhance analytics with geolocation and device data
- Develop a browser extension for quick URL shortening
🤝 Contributing
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
For more information, visit the GitHub Repository.
Keep exploring
Related work

Email Reply Generator
AI-powered professional email reply generator with Chrome extension support.

Relivo MCP Server
Multi-namespace Model Context Protocol server in Go — memory, skills, events, Search Console, and Product Hunt tools mounted on one HTTP mux over Streamable HTTP. Namespaces self-register at startup, and every route is admitted by its own auth: API keys for MCP clients, Clerk for the dashboard.

Rumiva
Interior design studio experience built for a 3D web hackathon — a React Three Fiber room you explore straight from the hero, plus designer portfolios, project galleries, and service pages tied together with GSAP motion and smooth scrolling.