Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/josephc45/url_shortner
Reactive & Multithreaded Url-Shortener - Backend of a url shortener application using base 62 conversion
https://github.com/josephc45/url_shortner
aop docker java jenkins junit5 mockito multithreading r2dbc-h2 reactive-programming spring-boot
Last synced: 19 days ago
JSON representation
Reactive & Multithreaded Url-Shortener - Backend of a url shortener application using base 62 conversion
- Host: GitHub
- URL: https://github.com/josephc45/url_shortner
- Owner: josephC45
- Created: 2024-07-14T23:04:32.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-01-17T02:02:48.000Z (21 days ago)
- Last Synced: 2025-01-17T03:17:58.055Z (20 days ago)
- Topics: aop, docker, java, jenkins, junit5, mockito, multithreading, r2dbc-h2, reactive-programming, spring-boot
- Language: Java
- Homepage:
- Size: 78.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Reactive & Multithreaded URL Shortener
## Overview
This project is a high-performance, scalable backend application for shortening URLs. Built using Java, Spring Boot, and R2DBC-H2, the application supports asynchronous processing, multithreading, and end-to-end testing.## Features
- Converts long URLs into short URLs using Base 62 conversion.
- Reactive and multithreaded processing for enhanced responsiveness and concurrency.
- REST API endpoints for creating and retrieving URLs.
- Comprehensive testing:
- Unit and integration tests with JUnit/Mockito/WebTestClient.
- End-to-end testing with RestAssured.
- In-memory storage using R2DBC-H2 for fast data operations.
- Logging and monitoring with Aspect-Oriented Programming (AOP).
- CI/CD pipeline using Docker and Jenkins.## Tech Stack
- Java
- Spring Boot
- R2DBC-H2
- JUnit, Mockito, WebTestClient, and RestAssured for testing
- Docker and Jenkins### License
This project uses the following open-source libraries:- **Spring Boot**: Apache License 2.0 (Spring Boot): https://www.apache.org/licenses/LICENSE-2.0
- **RestAssured**: RestAssured License: https://github.com/rest-assured/rest-assured/blob/master/LICENSE