{"id":20523026,"url":"https://github.com/pennlabs/platform","last_synced_at":"2025-07-22T22:03:59.483Z","repository":{"id":33583509,"uuid":"146662415","full_name":"pennlabs/platform","owner":"pennlabs","description":"API for the Penn Labs platform built using Django REST framework. Includes accounts engine, club directory, product listings, documentation etc.","archived":false,"fork":false,"pushed_at":"2025-04-11T20:56:40.000Z","size":3826,"stargazers_count":22,"open_issues_count":28,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-11T21:38:37.570Z","etag":null,"topics":["django-rest-framework","rest-api","university-of-pennsylvania"],"latest_commit_sha":null,"homepage":"https://platform.pennlabs.org","language":"HTML","has_issues":true,"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/pennlabs.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":"2018-08-29T21:46:14.000Z","updated_at":"2025-02-28T22:20:03.000Z","dependencies_parsed_at":"2024-09-18T06:45:51.923Z","dependency_job_id":"e38580cb-c319-4413-8894-47c6c632fea8","html_url":"https://github.com/pennlabs/platform","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pennlabs/platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pennlabs%2Fplatform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pennlabs%2Fplatform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pennlabs%2Fplatform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pennlabs%2Fplatform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pennlabs","download_url":"https://codeload.github.com/pennlabs/platform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pennlabs%2Fplatform/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266580298,"owners_count":23951193,"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-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["django-rest-framework","rest-api","university-of-pennsylvania"],"created_at":"2024-11-15T22:37:39.013Z","updated_at":"2025-07-22T22:03:59.461Z","avatar_url":"https://github.com/pennlabs.png","language":"HTML","readme":"# Platform\n\n[![CircleCI](https://circleci.com/gh/pennlabs/platform.svg?style=shield)](https://circleci.com/gh/pennlabs/platform)\n[![Coverage Status](https://codecov.io/gh/pennlabs/platform/branch/master/graph/badge.svg)](https://codecov.io/gh/pennlabs/platform)\n\nThe \u003cstrong\u003e Labs Platform \u003c/strong\u003e is the back-end interface to the ecosystem that facilitates the organization's:\n\n1. Accounts Engine\n2. Cross-Product Resources\n3. Organizational Information\n\n## Installation\n\n0. Configure environment variables (e.g. `.env`) containing:\n\n```bash\nDATABASE_URL=mysql://USER:PASSWORD@HOST:PORT/NAME\nSECRET_KEY=secret\nDJANGO_SETTINGS_MODULE=Platform.settings.production\nSENTRY_URL=https://pub@sentry.example.com/product\nAWS_ACCESS_KEY_ID\nAWS_SECRET_ACCESS_KEY\nAWS_STORAGE_BUCKET_NAME\n```\n\n1. Run using docker: `docker run -d pennlabs/platform`\n\n## Documentation\n\nRoutes are defined in `/pennlabs/urls.py` and subsequent app folders in the form of `*/urls.py`. Account/authorization related scripts are located in `accounts/` and Penn Labs related scripts are located in `org/`.\n\nDocumentation about individual endpoints is available through the `documentation/` route when the Django app is running.\n\n## Installation\nYou will need to start both the backend and the frontend to do Platform development.\n\n### Backend\n\nRunning the backend requires [Python 3](https://www.python.org/downloads/).\n\nTo run the server, `cd` to the folder where you cloned `platform`. Then run:\n- `cd backend`\n\nSetting up `psycopg2` (this is necessary if you want to be able to modify\ndependencies, you can revisit later if not)\n\n- Mac\n  - `$ brew install postgresql`\n  - `$ brew install openssl`\n  - `$ brew unlink openssl \u0026\u0026 brew link openssl --force`\n  - `$ echo 'export PATH=\"/usr/local/opt/openssl@3/bin:$PATH\"' \u003e\u003e ~/.zshrc`\n  - `$ export LDFLAGS=\"-L/usr/local/opt/openssl@3/lib\"`\n  - `$ export CPPFLAGS=\"-I/usr/local/opt/openssl@3/include\"`\n- Windows\n  - `$ apt-get install gcc python3-dev libpq-dev`\n\nNow, you can run \n\n- `$ pipenv install` to install Python dependencies. This may take a few\n  minutes. Optionally include the `--dev` argument if you are installing locally\n  for development. If you skipped installing `psycopg2` earlier, you might see\n  an error with locking -- this is expected!\n- `$ pipenv shell`\n- `$ ./manage.py migrate` OR `$ python3 manage.py migrate`\n- `$ ./manage.py populate_users` OR `$ python3 manage.py populate_users` (in development,\n  to populate the database with dummy data)\n- `$ ./manage.py runserver` OR `$ python3 manage.py runserver`\n\n### Frontend\n\nRunning the frontend requires [Node.js](https://nodejs.org/en/) and [Yarn](https://yarnpkg.com/getting-started/install).\n\n1. Enter the `frontend` directory with a **new terminal window**. Don't kill your backend server!\n2. Install dependencies using `yarn install` in the project directory.\n3. Run application using `yarn dev`.\n4. Access application at [http://localhost:3000](http://localhost:3000).\n\n### Development\n\nClick `Login` to log in as a test user. The `./manage.py populate_users` command creates a test user for you with username `bfranklin` and password `test`. Go to `/api/admin` to login to this account.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpennlabs%2Fplatform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpennlabs%2Fplatform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpennlabs%2Fplatform/lists"}