{"id":18350247,"url":"https://github.com/mebeim/middleware_project","last_synced_at":"2025-04-06T10:32:10.513Z","repository":{"id":113320305,"uuid":"246848835","full_name":"mebeim/middleware_project","owner":"mebeim","description":"📚 Middleware technologies for distributed systems exam project.","archived":true,"fork":false,"pushed_at":"2020-09-11T11:27:45.000Z","size":90,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-15T15:35:12.194Z","etag":null,"topics":["rest","rest-api","rest-server","rest-service","restful-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mebeim.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}},"created_at":"2020-03-12T14:01:18.000Z","updated_at":"2023-05-18T15:00:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"3e326448-99c0-4e6e-8373-774759da32e9","html_url":"https://github.com/mebeim/middleware_project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mebeim%2Fmiddleware_project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mebeim%2Fmiddleware_project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mebeim%2Fmiddleware_project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mebeim%2Fmiddleware_project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mebeim","download_url":"https://codeload.github.com/mebeim/middleware_project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247470221,"owners_count":20944143,"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","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":["rest","rest-api","rest-server","rest-service","restful-api"],"created_at":"2024-11-05T21:25:46.915Z","updated_at":"2025-04-06T10:32:10.495Z","avatar_url":"https://github.com/mebeim.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"REST-JPG\n========\n\n[![Build status][github-actions-image]][github-actions-url]\n[![license][license-image]][license-url]\n\nCourse project for the course\n[052533 - Middleware Technologies For Distributed Systems][project-course] held\nin the autumn semester of 2020 at [Politecnico di Milano][polimi].\n\n\nDocumentation\n-------------\n\nDocumentation for the REST API is available through Postman [**here**][api-doc]\u003csup\u003e*\u003c/sup\u003e. Browse examples online or try it out using [Postman's native app][postman-app].\n\n\u003csup\u003e* Link may expire after course final grading.\u003c/sup\u003e\n\n\nRunning the server\n------------------\n\n### Development\n\nIn *development* mode, the server creates a new volatile database and save\nimages inside the container only. All data is lost on shutdown. The server will\nlisten for HTTP connections on port 80.\n\nTo run in this mode, first build with `docker-compose build` and then `run` the\n`server` service passing `--test` as first argument.\n\n```\n$ docker-compose build\n$ docker-compose run --service-ports --rm server --test\n```\n\n### Production\n\nIn *production* mode, the server uses the DB present at `./db/db.sqlite` (if not\npresent, a new one is created) and saves images in the `./images` directory.\nData persists after shutdown. The server will listen for HTTPS connections on\nport 443, using the HTTPS certificates provided in the `./https` folder.\n\n```\n$ docker-compose up -d\n```\n\n\nTesting\n-------\n\nUnit tests are implemented in the `tests/` folder. To run tests, start the\nserver in *development* mode and then start the `test.py` script from within the\n`test/` directory.\n\n```\n$ docker-compose run --service-ports --rm server --test\n\n# in another shell\n$ cd test\n$ pip3 install --user -r requirements.txt # if needed\n$ ./test.py\n```\n\nNOTE: the `test_client.py` is used to test OAuth functionality, it will create\na temporary HTTP server listening on port 9999 for this purpose when token\ngeneration tests are run.\n\n\n---\nThis project is distributed under the terms of the Apache License v2.0.\nSee file [`LICENSE`][license-url] for further reference.\n\n\n[github-actions-url]: https://github.com/mebeim/middleware_project/actions\n[github-actions-image]: https://github.com/mebeim/middleware_project/workflows/CI/badge.svg?branch=master\n[license-url]: https://github.com/mebeim/middleware_project/blob/master/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache%202.0-green\n[project-course]: https://www11.ceda.polimi.it/schedaincarico/schedaincarico/controller/scheda_pubblica/SchedaPublic.do?\u0026evn_default=evento\u0026c_classe=694795\u0026polij_device_category=DESKTOP\u0026__pj0=0\u0026__pj1=7908374dbcd5f0ff305b0e84491f033b\n[polimi]: https://www.polimi.it/\n[api-doc]: https://documenter.getpostman.com/view/12652042/TVCmQjJz\n[postman-app]: https://www.postman.com/downloads/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmebeim%2Fmiddleware_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmebeim%2Fmiddleware_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmebeim%2Fmiddleware_project/lists"}