{"id":28262062,"url":"https://github.com/delemangi/synthra","last_synced_at":"2025-07-27T13:07:31.656Z","repository":{"id":211644880,"uuid":"726294722","full_name":"Delemangi/synthra","owner":"Delemangi","description":"Имплементација на системи со слободен и отворен код - проект | Implementation of free and open source systems - project | 2023/2024","archived":false,"fork":false,"pushed_at":"2024-07-18T19:15:08.000Z","size":4576,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-16T10:48:34.512Z","etag":null,"topics":["fcse","finki","insssiok","isok"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Delemangi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-12-02T01:01:28.000Z","updated_at":"2024-07-20T13:56:00.000Z","dependencies_parsed_at":"2024-01-08T23:25:46.968Z","dependency_job_id":"5f18ad5c-3ec6-41eb-b650-9b70c23105ea","html_url":"https://github.com/Delemangi/synthra","commit_stats":null,"previous_names":["delemangi/synthra"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Delemangi/synthra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Delemangi%2Fsynthra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Delemangi%2Fsynthra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Delemangi%2Fsynthra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Delemangi%2Fsynthra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Delemangi","download_url":"https://codeload.github.com/Delemangi/synthra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Delemangi%2Fsynthra/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267361500,"owners_count":24074942,"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-27T02:00:11.917Z","response_time":82,"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":["fcse","finki","insssiok","isok"],"created_at":"2025-05-20T06:12:11.819Z","updated_at":"2025-07-27T13:07:31.650Z","avatar_url":"https://github.com/Delemangi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synthra\n\nSynthra is a file hosting application built using [FastAPI](https://github.com/tiangolo/fastapi) (with Python \u003e= 3.11) and [SvelteKit](https://github.com/sveltejs/kit), with [PostgreSQL](https://github.com/postgres/postgres), [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) and [Alembic](https://github.com/sqlalchemy/alembic).\n\nThis repository contains both the frontend and the backend of the project in their respective folders.\n\n## Documentation\n\nThis is a project for the courses `Implementation of free and open source systems` and `Team project`.\n\nSee [DOCUMENTATION.md](docs/DOCUMENTATION.md).\n\nAuthors:\n\n- Stefan Milev - 206055\n- Alek Jarmov - 206012\n- Ana Marija Atanasovska - 206004\n- Danilo Najkov - 206033\n\n## Features\n\n- File hosting\n- File previews\n- File whitelist\n- File expiration\n- File quotas\n- Roles\n- Encryption\n- 2FA\n- User registration and login\n- Intuitive interface\n- Support for webhooks\n- Account panel\n- Administrative panel\n- ShareX integration\n- Themes\n\nSee also [FEATURES.md](docs/FEATURES.md).\n\n## Installation\n\nFor running the application in production mode, it's highly recommended to use Docker. Otherwise, the manual setup is also available for those who wish to test the application in a development environment.\n\n### Quick Deployment\n\nFor most users, just these few steps should be sufficient, provided that you are comfortable with using Docker for deploying applications.\n\n1. Grab the `docker-compose.prod.yaml` file from the repository\n2. Rename it to `docker-compose.yaml`\n3. Run `docker compose up -d`\n\n### Development\n\nTo setup your environment and the project for development:\n\n1. Run `poetry install --no-root` (while inside the `backend` folder)\n2. Run `pre-commit install`\n\n### Tests\n\n### Tests (Backend)\n\n1. Run `cd backend`\n2. Run `poetry run pytest`\n\n### Tests (Frontend)\n\n1. Run `cd frontend`\n2. Run `npm run test`\n\n### Installation (Docker Setup)\n\nThe project contains two Docker Compose configurations. `docker-compose.yaml` is for the development environment, and `docker-compose.prod.yaml` is for the production environment.\n\nWhile building the frontend, the environment variable `VITE_BASE_URL` should be present, which is the URL to the API. You can also add this to the global `.env` file.\n\n1. Run `git clone git@github.com:Delemangi/synthra.git` (or `git clone https://github.com/Delemangi/synthra.git`)\n2. Run `docker compose build`\n\n### Installation (Manual Setup)\n\nThe manual setup requires that you have the following requirements installed:\n\n- [Python](https://www.python.org/) \u003e= v3.11\n- [Poetry](https://python-poetry.org/)\n- [Node.js](https://nodejs.org/en) \u003e= v20\n- [PostgreSQL](https://www.postgresql.org/) \u003e= v16\n\nOnce you have all these dependencies installed, then:\n\n1. Run `git clone git@github.com:Delemangi/synthra.git` (or `git clone https://github.com/Delemangi/synthra.git`)\n2. Next, you have to install each module separately.\n\n#### Backend\n\n1. Navigate to the `backend` folder: `cd backend`\n2. Run `poetry install --no-root`\n\n#### Frontend\n\n1. Navigate to the `frontend` folder: `cd frontend`\n2. Run `npm i`\n3. Run `npm run build`\n\n## Running\n\n### Running (Docker Setup)\n\n1. Copy or rename the `.env.sample` file to `.env`, and edit it to your liking, or leave it as is\n2. Run `docker compose up -d`\n\n### Running (Manual Setup)\n\n1. Start the PostgreSQL service\n2. Apply all migrations: `alembic upgrade head`\n3. Start the backend service\n   1. Open the project in your terminal\n   2. Run `cd backend`\n   3. Run `python -m app.main`\n4. Start the frontend service\n   1. Open the project in your terminal\n   2. Run `cd frontend`\n   3. If you would like to start the application in a development environment with hot reloading, then run `npm run dev`, otherwise `npm run preview`, provided that you have run `npm run build` previously\n\n## License\n\nThis project is licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelemangi%2Fsynthra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdelemangi%2Fsynthra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdelemangi%2Fsynthra/lists"}