{"id":25827841,"url":"https://github.com/kucera-lukas/imagesecrets","last_synced_at":"2025-02-28T16:53:47.571Z","repository":{"id":37893748,"uuid":"384220136","full_name":"kucera-lukas/imagesecrets","owner":"kucera-lukas","description":"RESTful API for encoding/decoding messages into/from images.","archived":false,"fork":false,"pushed_at":"2025-02-17T21:15:46.000Z","size":593,"stargazers_count":0,"open_issues_count":14,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-02-17T22:24:46.911Z","etag":null,"topics":["api","asyncio","docker","fastapi","heroku","mypy","numpy","pillow","poetry","postgresql","pydantic","pytest","pytest-cov","pytest-mock","python","python-typing","restful-api","steganography","swagger","tortoise-orm"],"latest_commit_sha":null,"homepage":"https://imagesecrets.herokuapp.com","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/kucera-lukas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-07-08T18:48:49.000Z","updated_at":"2025-01-02T13:17:52.000Z","dependencies_parsed_at":"2023-02-15T12:45:59.181Z","dependency_job_id":"cff28500-9265-4d2a-86d5-43e6cd8a0922","html_url":"https://github.com/kucera-lukas/imagesecrets","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kucera-lukas%2Fimagesecrets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kucera-lukas%2Fimagesecrets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kucera-lukas%2Fimagesecrets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kucera-lukas%2Fimagesecrets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kucera-lukas","download_url":"https://codeload.github.com/kucera-lukas/imagesecrets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241184146,"owners_count":19924021,"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":["api","asyncio","docker","fastapi","heroku","mypy","numpy","pillow","poetry","postgresql","pydantic","pytest","pytest-cov","pytest-mock","python","python-typing","restful-api","steganography","swagger","tortoise-orm"],"created_at":"2025-02-28T16:53:46.990Z","updated_at":"2025-02-28T16:53:47.558Z","avatar_url":"https://github.com/kucera-lukas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ImageSecrets\n\n![Heroku](https://pyheroku-badge.herokuapp.com/?app=imagesecrets\u0026path=/\u0026style=flat)\n![Build](https://github.com/kucera-lukas/imagesecrets/actions/workflows/build.yml/badge.svg)\n![Test Suite](https://github.com/kucera-lukas/imagesecrets/actions/workflows/test.yml/badge.svg)\n[![codecov](https://codecov.io/gh/kucera-lukas/imagesecrets/branch/master/graph/badge.svg?token=BUUQN2WP9K)](https://codecov.io/gh/kucera-lukas/imagesecrets)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/kucera-lukas/imagesecrets.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/kucera-lukas/imagesecrets/context:python)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/kucera-lukas/imagesecrets.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/kucera-lukas/imagesecrets/alerts/)\n\nRESTful API for encoding/decoding messages into/from images.\n*  [Website - home](https://imagesecrets.herokuapp.com)\n*  [Website - Swagger UI](https://imagesecrets.herokuapp.com/docs)\n*  [Website - ReDoc](https://imagesecrets.herokuapp.com/redoc)\n\n## Tech/framework used\n*  Python 3.9\n*  FastAPI\n*  PostgreSQL with Tortoise ORM\n*  Docker\n*  Heroku\n\n## Features\n*  Image steganography to encode and decode messages\n*  User management and authentication\n*  Great documentation via OpenAPI\n\n## What I've learned\n*  Python - Improved knowledge of testing, asynchronous development, ORMs, coverage\n*  FastAPI - Gained great experience with the framework\n*  NumPy - Used for reading and editing image pixel data\n*  Databases - Learned how to use SQLAlchemy and Tortoise ORM for asynchronous database development\n*  DevOps - CI/CD pipeline, production database and Heroku\n*  API development - REST principles, JSON Web Tokens, data serialization\n\n## License\n*  Developed under the [MIT](https://gitlab.com/Lkms19/lightning-pass/-/blob/master/LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkucera-lukas%2Fimagesecrets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkucera-lukas%2Fimagesecrets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkucera-lukas%2Fimagesecrets/lists"}