YAUS, Yet Another URL Shortener
- Basic URL shortener functionality
- Use a database to store the shortened URLs instead of keeping them in memory
- Add database error handling
- Check that the data received is a valid URL
- Use a random generated ID for the shortened URLs instead of using an incremental number
- Split the random generator function from the string trimmer part
- Add test for the string trimming part
- Check that the shortcode received is up to 8 characters and only contains alphanumeric values
- Find a way to not destroy the database every time the application is deployed
- Migrate to use PostgreSQL instead of SQLite
- Add a frontend functionality to allow creating the short URLs from the browser itself
- Custom error pages
- Do not allow to generate a short URL for an already shortened URL
- Do not allow to generate a short URL for a URL that is already shorter than the resulting shortened URL
- Improve error messages depending on the cause of the errors
- Add last used column in the URL table to keep track of the least most used URLs
- Add possibility to block URL to specific domains
- Use google safe browsing to obtain a list of flagged domains
- Make YAUS user aware
- Allow users to create custom named shortened URLs
- Implement a way to get rid of the least used URLs
YAUS uses docker
and docker-compose
to run both the DB and the YAUS application locally.
To run YAUS run the following command:
make run
You would need to install the linting dependencies
make tools-lint
You need to run the following command to run the unit test
make test
You need to run the following command to run the linting
make lint