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 Docker Desktop
- 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)
If you want a more detailed set of instructions on how to build without Docker, click here for the build instructions.
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