- Introduction
- GitHub Stars
- Tech Stack
- Quick Start
- Deployment
- Forking and Tweaking
- Reporting a Bug
- Proposing a New Feature
- Contributions
- Code of Conduct
- Top Contributors
- License
- Contact
🟥 URL Shortener is a non-profit project aimed at providing a robust URL shortening service. Our goal is to enhance technical skills and collaborate on an engaging project.
🟥 We operate without financial backing or compensation; our efforts are driven by passion and commitment.
Please support the URL Shortener project by giving stars 🌟 on GitHub repositories - your ratings mean a lot to us! 🙂
- Architecture: Monolith.
- Programming Language: Kotlin.
- Framework: Spring Boot 3, Spring Data MongoDB, Spring Security, Spring Actuator, Spring Quartz, Spring Batch.
- Database: MongoDB.
- Caching: Caffeine.
- Email: SMTP.
- Monitoring: Prometheus.
- Logging: Logback.
- Testing: JUnit 5, Testcontainers, Rest Assured.
- API Specs: Open API.
- Validation: Javax Validation.
Follow the setup instructions in START.MD to get the project up and running.
Deployment is managed using Docker Compose. You can find the production configuration in the docker-compose.yml file.
GitHub Actions handle continuous integration and deployment. Check out the CI pipeline for details.
Forks are welcome!
Please:
- Share new features you implement so others can benefit and your codebase stays in sync with the original.
- Use Discussions for support rather than official channels.
- 🆕 Open a new issue.
- 🔦 Search first to see if the issue already exists!
- Provide detailed descriptions of the observed and expected behavior.
- Visit our Discussions
- Check if the feature has been proposed already.
- Create a new discussion with detailed requirements.
Contributions are welcome!
- Check the Issues page for current tasks.
- Comment on issues you're interested in working on.
For major changes, open an issue first or discuss in comments to avoid logical contradictions.
- good first issue — Great for newcomers.
- bug — Issues that need fixing.
- high priority — Urgent tickets.
- enhancement — Improvements to existing features.
- new feature — New, complex features.
- idea — Ideas requiring discussion.
- ¯\(ツ)/¯ — Questionable issues, should be reviewed.
- [no label] — New or unclear tickets.
Recognize our top contributors who make this project better:
You can use the code for private and commercial purposes with appropriate attribution.
Join our community on Telegram.
Feel free to reach out via email: [email protected].
❤️