{"id":18429315,"url":"https://github.com/gal16v8d/candc-svc","last_synced_at":"2026-05-08T04:08:13.693Z","repository":{"id":199179748,"uuid":"701776753","full_name":"gal16v8d/candc-svc","owner":"gal16v8d","description":"Wiki repo for C\u0026C games","archived":false,"fork":false,"pushed_at":"2025-07-03T20:08:02.000Z","size":950,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-03T21:21:17.744Z","etag":null,"topics":["flask","flask-caching","flask-limiter","flask-migrate","flask-sqlalchemy","postgresql","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gal16v8d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-10-07T14:22:53.000Z","updated_at":"2025-07-03T20:08:05.000Z","dependencies_parsed_at":"2023-10-17T07:14:10.328Z","dependency_job_id":"13af0e1c-d174-464d-9fcd-1901ac1f1a40","html_url":"https://github.com/gal16v8d/candc-svc","commit_stats":null,"previous_names":["gal16v8d/candc-svc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gal16v8d/candc-svc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gal16v8d%2Fcandc-svc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gal16v8d%2Fcandc-svc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gal16v8d%2Fcandc-svc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gal16v8d%2Fcandc-svc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gal16v8d","download_url":"https://codeload.github.com/gal16v8d/candc-svc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gal16v8d%2Fcandc-svc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267907260,"owners_count":24164240,"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-30T02:00:09.044Z","response_time":70,"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","flask-caching","flask-limiter","flask-migrate","flask-sqlalchemy","postgresql","python3"],"created_at":"2024-11-06T05:16:37.661Z","updated_at":"2026-05-08T04:08:08.632Z","avatar_url":"https://github.com/gal16v8d.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C\u0026C service\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"200\" src=\"flask-logo.png\" alt=\"Flask logo\"\u003e\n  \u003cp align=\"center\"\u003e\n    Flask + SQLAlchemy + PostgreSQL REST API for C\u0026C Wiki\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\nThis project was created using [Poetry](https://python-poetry.org/).\nBasically, its a really basic API wiki view for all the data related to C\u0026C games.\nThis is still WIP, so it may get some data updates soon.\n\n# Get started\n\n## Unix\n\nInstall poetry:\n\n```bash\ncurl -sSL https://install.python-poetry.org | python3 -\n```\n\nInit repo:\n\n```bash\npoetry new candc-svc\n```\n\nCreate the virtual env folder:\n\n```bash\nmkdir .venv\n```\n\nInstall all the dependencies in the project (clean-state):\n\n```bash\npoetry install\n```\n\nInstall any dependency you need:\n\n```bash\npoetry add lib_here\n```\n\nRemove a dependency you don't need:\n\n```bash\npoetry remove lib_here\n```\n\nUpdate all (updatable) libs\n\n```bash\npoetry update\n```\n\n# Set up\n\n# env\n\nActivate using the command:\n\n```bash\nsource .venv/bin/activate\n```\n\nor\n\n```bash\neval $(poetry env activate)\n```\n\nExit virtual env:\n\n```bash\nexit\n```\n\nor\n\n```bash\ndeactivate\n```\n\n# sqlalchemy\n\nFor init db:\n\n```bash\nflask db init\n```\n\nMigrate:\n\n```bash\nflask db migrate\n```\n\nConfirm/apply in db:\n\n```bash\nflask db upgrade\n```\n\n# launch\n\nDev mode:\n\n```bash\nflask run\n```\n\nProd run:\n\n```bash\ngunicorn --workers {# workers here} --bind 0.0.0.0:{port here} wsgi:app\n```\n\n# test\n\n```bash\npytest --cov\n```\n\n# automation\n\nRun the server using the command on launch section\nThen open another console, activate the env and go to automation folder\nOnce there run the tests using:\n\n```bash\nbehave\n```\n\nYou can see the console output with several features, scenarios and steps and its status as passed, failed or skipped.\n\n# Advanced use cases\n\nIf multiple python versions are found in the operative system, then\n- use pyenv to handle the versions\n- if needed set the local python for this project, like\n```bash\npyenv local 3.12.1\n```\n- you can confirm all good by checking\n```bash\npyenv which python\n```\n- set the specific python version like\n```bash\npoetry env use $USER_HOME/.pyenv/versions/3.12.1/bin/python\n```\n- then install using commands like the ones in the previous section\n\n# Formatter\n\nUsing `black` as code formatter\nCan be used this way:\n```bash\npoetry run black .\n```\n\n# Type checking\nUsing `mypy` for type checking\nCan be used this way:\n```bash\npoetry run mypy app tests\n```\n\n# swagger docs (flask-restx)\n\nhttp://{host}:{port}\n\n# Web deployment\n\nThis app can be hosted in [Railway](https://railway.app), folder that helps with it is `.ci` folder.\n\n## List of cool technologies in use here\n\n- [Behave](https://behave.readthedocs.io/en/latest/)\n- [Flask](https://flask.palletsprojects.com/en/2.3.x/)\n- [Flask-Bootstrap](https://pythonhosted.org/Flask-Bootstrap/)\n- [FLask-Caching](https://flask-caching.readthedocs.io/en/latest/index.html)\n- [Flask-Limiter](https://flask-limiter.readthedocs.io/en/stable/)\n- [Flask-Migrate](https://flask-migrate.readthedocs.io/en/latest/index.html)\n- [poetry](https://python-poetry.org/)\n- [pyenv](https://github.com/pyenv/pyenv)\n- [SQLAlchemy](https://www.sqlalchemy.org/)\n\n## License\n\n[MIT licensed](LICENSE).\n\n## Stay in touch\n\n- Author - [gal16v8d](https://github.com/gal16v8d)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgal16v8d%2Fcandc-svc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgal16v8d%2Fcandc-svc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgal16v8d%2Fcandc-svc/lists"}