{"id":16430157,"url":"https://github.com/its-alex/flatsharing","last_synced_at":"2026-01-22T18:02:54.618Z","repository":{"id":230275089,"uuid":"118260451","full_name":"Its-Alex/flatsharing","owner":"Its-Alex","description":"FlatSharing backend made for roommate","archived":false,"fork":false,"pushed_at":"2023-07-11T16:44:40.000Z","size":18299,"stargazers_count":2,"open_issues_count":22,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-30T17:48:20.102Z","etag":null,"topics":["automation","go","microservice"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Its-Alex.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":"2018-01-20T16:32:30.000Z","updated_at":"2023-12-28T16:45:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9a181a5-250c-4dcb-86be-ea87c3355d29","html_url":"https://github.com/Its-Alex/flatsharing","commit_stats":null,"previous_names":["its-alex/flatsharing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Its-Alex/flatsharing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Its-Alex%2Fflatsharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Its-Alex%2Fflatsharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Its-Alex%2Fflatsharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Its-Alex%2Fflatsharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Its-Alex","download_url":"https://codeload.github.com/Its-Alex/flatsharing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Its-Alex%2Fflatsharing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28667881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["automation","go","microservice"],"created_at":"2024-10-11T08:25:54.290Z","updated_at":"2026-01-22T18:02:54.555Z","avatar_url":"https://github.com/Its-Alex.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://drone.itsalex.fr/api/badges/Its-Alex/flatsharing/status.svg)](https://drone.itsalex.fr/Its-Alex/flatsharing)\n[![codecov](https://codecov.io/gh/Its-Alex/flatsharing/branch/master/graph/badge.svg?token=3VmgQm5LGw)](https://codecov.io/gh/Its-Alex/flatsharing)\n\nFlatSharing backend repository at http://flatsharing.io\n\n- [Requirements](#requirements)\n- [Environments variables](#environments-variables)\n- [Get started](#get-started)\n- [How to dev](#how-to-dev)\n- [Migrations](#migrations)\n- [License](#license)\n\n## Requirements\n\n- `make`\n- `docker`\n- `direnv` (optional)\n\nIf you don't want to get `direnv` you can source .envrc each time you open a new shell session\n\n```\n$ source .envrc\n```\n\nThis repo use new go module feature, please read how it works before start\n\nYou need nothing special in your host, this project use docker to dev/build\n\nIn this project I tried to follow [`this template`](https://github.com/golang-standards/project-layout)\n\n## Environments variables\n\nAll services have some environments variables to change some dynamics values\n(usefull to setup and scale).\n\nAll variables for all services all listed in [`docker-compose.yml`](/docker-compose.yml)\n\n## Get started\n\nTo up all services\n\n```\n$ make up\n```\n\nThen all services run in a container\n\nYou can fetch service with shared port in [`docker-compose.yml`](/docker-compose.yml)\n\nWhen you build a service it's auto-refreshed in the container\n\nThere are global rule that works for all services\n\n```\n$ make build\n```\n\nThis command will build all current services that can be build\n\nYou can stop project (containers) with this command:\n\n```\n$ make down\n```\n\n## How to dev\n\nThere are a container [`workspace`](/docker-compose.yml#L4) that is used to work inside it\n\nSome makefile commands must be executed inside or outside this container, it will display\na message if your wrong about where you execute a command.\n\nThere is a rule to install dependencies inside container\n\n```\n$ make dep\n```\n\nSo if you need to add a binary for the project see [`here`](/Makefile#L20)\nor you can add it when container builds in [`Dockerfile`](/Dockerfile)\n\nTo enter inside workspace please use:\n\n```\n$ make enter\n```\n\nThis command patch some annoying bugs. Same to entrer inside database\n\n```\n$ make enter-postgresql\n```\n\nThis project use [`gRPC`](https://github.com/grpc/grpc-go) you can find code in \n[`src`](/src) folder and proto files in [`src/protobuf`](/src/protobuf). There are commands\nto build proto\n\n```\n$ make protoc-${service}\n```\n\nSame to build go code\n\n```\n$ make build-${service}\n```\n\nYou can check if tests failed:\n\n```\n$ make test\n```\n\nYou can see if the linter pass:\n\n```\n$ make lint\n```\n\nSame for coverage:\n\n```\n$ make coverage\n```\n\n## Migrations\n\nAll databases migrations are defined in [`assets/migrations`](/assets/postgres/migrations) folder\n\nYou will find a up and down, they are used by [`migrate`](https://github.com/golang-migrate/migrate)\n\nTo apply all migrations:\n\n```\n$ make migrate\n```\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fits-alex%2Fflatsharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fits-alex%2Fflatsharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fits-alex%2Fflatsharing/lists"}