Shrunk is an open-source full-stack application primarily made to shorten URLs for faculty, staff, and professors of Rutgers University. It is written in Python 3.6 and TypeScript and uses MongoDB, React, and Flask.
- Shorten long URLs
- Create a collection of URLs onto a customizable webpage
- Supports Rutgers Central Authentication Service (CAS)
- Statistics on number of visits on a shortened URL with dynamic charts and geographic maps
- Share multiple shortened URLs via organizations
- Restricted permissions on certain actions
- Install or update Docker Desktop with your Docker Engine being version 27 or newer
- Create a copy of
backend/shrunk/config.py.example
toconfig.py
- Change the value
DB_HOST
tomongodb
in the backend's config file - Start the Docker containers
docker-compose up
- Start developing at
http://localhost:4343
(click to learn more about this change)
We use pytest for our unit tests framework, you can run this command inside the backend directory to check if you've made regressive changes.
python -m pytest
We use black for our backend's formatting, while using pylint, flake8, and mypy for linting in the GitLab CI/CD, you can run this command to make sure your code is up to standards. If you're using Visual Studio Code, it does this automatically.
black .
We also use Prettier for our frontend's formatting, you can run this command to make sure your code is up to standards. If you're using Visual Studio Code, it does this automatically.
prettier --write .
Make sure you're
- using Python 3.6.x
- inside a virtual environment
- run
pip install poetry
- run
poetry cache clear --all pypi
if you're having problems with poetry