{"id":23024687,"url":"https://github.com/oss/shrunk","last_synced_at":"2025-08-14T11:32:30.735Z","repository":{"id":23608323,"uuid":"26977385","full_name":"oss/shrunk","owner":"oss","description":"URL Shortener for Rutgers University. This is an official read-only mirror; pull requests are ignored.","archived":false,"fork":false,"pushed_at":"2025-08-12T22:08:07.000Z","size":37437,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-08-12T23:34:05.622Z","etag":null,"topics":["flask","httpd","mongodb","python3","reactjs","rutgers","rutgers-university","typescript","url-shortener"],"latest_commit_sha":null,"homepage":"https://go.rutgers.edu/","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-11-21T20:49:56.000Z","updated_at":"2025-08-01T19:02:49.000Z","dependencies_parsed_at":"2024-02-24T18:25:40.834Z","dependency_job_id":"2ff3b92f-d039-43aa-98a4-5bf5c62e8f76","html_url":"https://github.com/oss/shrunk","commit_stats":{"total_commits":1194,"total_committers":38,"mean_commits":31.42105263157895,"dds":0.7085427135678393,"last_synced_commit":"c18149488aab04bbee302c1ad912941dd75caa66"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/oss/shrunk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fshrunk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fshrunk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fshrunk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fshrunk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oss","download_url":"https://codeload.github.com/oss/shrunk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oss%2Fshrunk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270412093,"owners_count":24579225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","httpd","mongodb","python3","reactjs","rutgers","rutgers-university","typescript","url-shortener"],"created_at":"2024-12-15T13:20:42.355Z","updated_at":"2025-08-14T11:32:25.702Z","avatar_url":"https://github.com/oss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shrunk ![license: MIT](https://img.shields.io/badge/license-MIT-blue) ![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg) ![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)\n\n[Shrunk](https://go.rutgers.edu/) 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](https://www.python.org/) and [TypeScript](https://www.typescriptlang.org/) and uses [MongoDB](https://www.mongodb.com/), [React](https://react.dev/), and [Flask](https://flask.palletsprojects.com/).\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./docs/images/home.png\" height=400 width='auto'\u003e\n\u003c/div\u003e\n\n## Features\n\n- Shorten long URLs\n- Create a collection of URLs onto a customizable webpage\n- Supports Rutgers Central Authentication Service (CAS)\n- Statistics on number of visits on a shortened URL with dynamic charts and geographic maps\n- Share multiple shortened URLs via organizations\n- Restricted permissions on certain actions\n\n## Build Instructions\n\n### Build with Docker (Developer)\n\n1. Install [Docker Desktop](https://docs.docker.com/desktop/)\n2. Create a copy of `backend/shrunk/config.py.example` to `config.py`\n3. Change the value `DB_HOST` to `mongodb` in the backend's config file\n4. Start the Docker containers:\n\n```\ndocker-compose up\n```\n\n5. Start developing at `http://localhost:4343` [(click to learn more about this change)](https://stackoverflow.com/questions/72369320/why-always-something-is-running-at-port-5000-on-my-mac)\n\n### Build manually\n\nIf you want a more detailed set of instructions on how to build without Docker, click [here](./docs/build-instructions.md) for the build instructions.\n\n## Contributing\n\n### Formatting\n\nWe use [pytest](https://pytest.org) for our unit tests framework, you can run this command inside the backend directory to check if you've made regressive changes.\n\n```\npython -m pytest\n```\n\nWe use [black](https://github.com/psf/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.\n\n```\nblack .\n```\n\nWe also use [Prettier](https://prettier.io/) 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.\n\n```\nprettier --write .\n```\n\n### Adding dependencies to backend\n\nMake sure you're\n - using Python 3.6.x\n - inside a virtual environment\n - run `pip install poetry`\n - run `poetry cache clear --all pypi` if you're having problems with poetry","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foss%2Fshrunk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foss%2Fshrunk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foss%2Fshrunk/lists"}