Multi-user URL shortener system, composed of two main modules:
- url-shortener-client: Exposes REST APIs for users to shorten URLs, retrieve original URLs, and view usage statistics. Communicates with the server via RabbitMQ.
- url-shortener-server: Handles business logic, persistence, and communication with external systems (RabbitMQ, Redis). Processes requests from the client and manages URL mappings.
url-shortener-client: REST API client for user interaction.url-shortener-server: Backend server for business logic and persistence.url-shortener-model: Common data model shared between client and server.docker-compose.yml: Orchestrates local development environment with RabbitMQ and Redis.
- Adoptium JDK 17
- Maven 3.6.3+
- Docker (for running services locally)
- RabbitMQ 3.12.4+ and Redis 7.2.0+ (can be run via Docker Compose)
- Clone the repository and navigate to the project root.
- Build all modules:
mvn clean package
- Start services using Docker Compose:
docker-compose up -d
- See Client Readme for API details and usage examples.
- See Server Readme for deployment and advanced configuration.
Please read the Definition of Done for details on our code of conduct, and the process for submitting pull requests.
This project uses SemVer for versioning.
CC BY-NC-ND