shrunk


Nameshrunk JSON
Version 2.3.3 PyPI version JSON
download
home_pagehttps://github.com/oss/shrunk
SummaryRutgers University URL Shortener
upload_time2023-09-07 18:52:31
maintainer
docs_urlNone
authorRutgers Open System Solutions
requires_python
license
keywords shrunk rutgers url shortener
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # shrunk

A URL shortener for Rutgers University. For more information, contact [Rutgers
Open System Solutions](http://oss.rutgers.edu).

Uses MongoDB. Python code targets **Python 3.6**.

## Getting started

First, if you haven't already, [add an SSH key to your GitLab account](https://docs.gitlab.com/ee/ssh/#common-steps-for-generating-an-ssh-key-pair). Then, clone this repository (via ssh) to a local directory:

    $ git clone git@gitlab.rutgers.edu:MaCS/OSS/shrunk.git

### Backend

Note: Prior to beginning the main installation of Shrunk, WSL2 (Windows Subsystem for Linux) users will likely need to [install additional packages first](https://stackoverflow.com/a/4768467/13026376).

Set up a virtual environment for the backend and install the python dependencies with:

    $ cd backend/
    $ virtualenv --no-site-packages --python="python3" venv
    $ source venv/bin/activate
	$ pip install wheel
    $ pip install -r backend/requirements.txt
    $ pip install -r backend/requirements-dev.txt

you need to make a copy of the example config and setup a local mongodb

    $ cd backend
    $ ./setup.py build_sphinx

This will place the Shrunk developer manual in `./build/sphinx/html`. Open the file
`index.html` in that directory to learn how to finish setting up the backend and setting up the frontend by reading the tutorials linked therein!

### Docs

The backend docs are written with reStructuredText. Here's a [cheatsheat](https://docutils.sourceforge.io/docs/user/rst/quickref.html) to quickly get started with it.

## Features

### Web Application

- Log in with a Rutgers NetID
- Create a short URL from a long URL
- Given a NetID, what URLs have they created?
- Analytics on visits. With graphs and maps!
- Create organizations to share links with your friends!

### URL Shortening Service

- Given a short URL, redirect to the long URL
- Track visits to the short URL
- Track popularity and number of clicks

### ACL link permissions by endpoint

- you can list all the endpoint with `flask routes`

users
link.validate_alias           GET      /api/v1/link/validate_alias/<b32:alias>
link.validate_long_url        GET      /api/v1/link/validate_long_url/<b32:long_url>
link.create_link              POST     /api/v1/link

viewers
link.get_alias_browser_stats  GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats/browser
link.get_alias_geoip_stats    GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats/geoip
link.get_alias_overall_stats  GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats
link.get_alias_visit_stats    GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats/visits
link.get_alias_visits         GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/visits
link.get_link                 GET      /api/v1/link/<ObjectId:link_id>
link.get_link_browser_stats   GET      /api/v1/link/<ObjectId:link_id>/stats/browser
link.get_link_geoip_stats     GET      /api/v1/link/<ObjectId:link_id>/stats/geoip
link.get_link_overall_stats   GET      /api/v1/link/<ObjectId:link_id>/stats
link.get_link_visit_stats     GET      /api/v1/link/<ObjectId:link_id>/stats/visits
link.get_link_visits          GET      /api/v1/link/<ObjectId:link_id>/visits

editors
link.create_alias             POST     /api/v1/link/<ObjectId:link_id>/alias
link.modify_acl               PATCH    /api/v1/link/<ObjectId:link_id>/acl
link.modify_link              PATCH    /api/v1/link/<ObjectId:link_id>

owner
link.delete_alias             DELETE   /api/v1/link/<ObjectId:link_id>/alias/<alias>
link.delete_link              DELETE   /api/v1/link/<ObjectId:link_id>
link.post_clear_visits        POST     /api/v1/link/<ObjectId:link_id>/clear_visits

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/oss/shrunk",
    "name": "shrunk",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "shrunk rutgers url shortener",
    "author": "Rutgers Open System Solutions",
    "author_email": "oss@oit.rutgers.edu",
    "download_url": "",
    "platform": null,
    "description": "# shrunk\n\nA URL shortener for Rutgers University. For more information, contact [Rutgers\nOpen System Solutions](http://oss.rutgers.edu).\n\nUses MongoDB. Python code targets **Python 3.6**.\n\n## Getting started\n\nFirst, if you haven't already, [add an SSH key to your GitLab account](https://docs.gitlab.com/ee/ssh/#common-steps-for-generating-an-ssh-key-pair). Then, clone this repository (via ssh) to a local directory:\n\n    $ git clone git@gitlab.rutgers.edu:MaCS/OSS/shrunk.git\n\n### Backend\n\nNote: Prior to beginning the main installation of Shrunk, WSL2 (Windows Subsystem for Linux) users will likely need to [install additional packages first](https://stackoverflow.com/a/4768467/13026376).\n\nSet up a virtual environment for the backend and install the python dependencies with:\n\n    $ cd backend/\n    $ virtualenv --no-site-packages --python=\"python3\" venv\n    $ source venv/bin/activate\n\t$ pip install wheel\n    $ pip install -r backend/requirements.txt\n    $ pip install -r backend/requirements-dev.txt\n\nyou need to make a copy of the example config and setup a local mongodb\n\n    $ cd backend\n    $ ./setup.py build_sphinx\n\nThis will place the Shrunk developer manual in `./build/sphinx/html`. Open the file\n`index.html` in that directory to learn how to finish setting up the backend and setting up the frontend by reading the tutorials linked therein!\n\n### Docs\n\nThe backend docs are written with reStructuredText. Here's a [cheatsheat](https://docutils.sourceforge.io/docs/user/rst/quickref.html) to quickly get started with it.\n\n## Features\n\n### Web Application\n\n- Log in with a Rutgers NetID\n- Create a short URL from a long URL\n- Given a NetID, what URLs have they created?\n- Analytics on visits. With graphs and maps!\n- Create organizations to share links with your friends!\n\n### URL Shortening Service\n\n- Given a short URL, redirect to the long URL\n- Track visits to the short URL\n- Track popularity and number of clicks\n\n### ACL link permissions by endpoint\n\n- you can list all the endpoint with `flask routes`\n\nusers\nlink.validate_alias           GET      /api/v1/link/validate_alias/<b32:alias>\nlink.validate_long_url        GET      /api/v1/link/validate_long_url/<b32:long_url>\nlink.create_link              POST     /api/v1/link\n\nviewers\nlink.get_alias_browser_stats  GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats/browser\nlink.get_alias_geoip_stats    GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats/geoip\nlink.get_alias_overall_stats  GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats\nlink.get_alias_visit_stats    GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/stats/visits\nlink.get_alias_visits         GET      /api/v1/link/<ObjectId:link_id>/alias/<alias>/visits\nlink.get_link                 GET      /api/v1/link/<ObjectId:link_id>\nlink.get_link_browser_stats   GET      /api/v1/link/<ObjectId:link_id>/stats/browser\nlink.get_link_geoip_stats     GET      /api/v1/link/<ObjectId:link_id>/stats/geoip\nlink.get_link_overall_stats   GET      /api/v1/link/<ObjectId:link_id>/stats\nlink.get_link_visit_stats     GET      /api/v1/link/<ObjectId:link_id>/stats/visits\nlink.get_link_visits          GET      /api/v1/link/<ObjectId:link_id>/visits\n\neditors\nlink.create_alias             POST     /api/v1/link/<ObjectId:link_id>/alias\nlink.modify_acl               PATCH    /api/v1/link/<ObjectId:link_id>/acl\nlink.modify_link              PATCH    /api/v1/link/<ObjectId:link_id>\n\nowner\nlink.delete_alias             DELETE   /api/v1/link/<ObjectId:link_id>/alias/<alias>\nlink.delete_link              DELETE   /api/v1/link/<ObjectId:link_id>\nlink.post_clear_visits        POST     /api/v1/link/<ObjectId:link_id>/clear_visits\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Rutgers University URL Shortener",
    "version": "2.3.3",
    "project_urls": {
        "Homepage": "https://github.com/oss/shrunk"
    },
    "split_keywords": [
        "shrunk",
        "rutgers",
        "url",
        "shortener"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8d39c704de12db168ac577e41cc1f62e6015a850c04034fdc5658879cd2cb53",
                "md5": "182191cdb6258e7e5b7c7d14cc1203d6",
                "sha256": "a3332867de53031f4e28ef3d226a60f462c2099daf21a37ca2955a69810283e6"
            },
            "downloads": -1,
            "filename": "shrunk-2.3.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "182191cdb6258e7e5b7c7d14cc1203d6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 846614,
            "upload_time": "2023-09-07T18:52:31",
            "upload_time_iso_8601": "2023-09-07T18:52:31.154819Z",
            "url": "https://files.pythonhosted.org/packages/c8/d3/9c704de12db168ac577e41cc1f62e6015a850c04034fdc5658879cd2cb53/shrunk-2.3.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-07 18:52:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "oss",
    "github_project": "shrunk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "shrunk"
}
        
Elapsed time: 0.11139s