{"id":31375221,"url":"https://github.com/velo-project/routes-service","last_synced_at":"2026-04-07T07:47:26.912Z","repository":{"id":316674160,"uuid":"1062227242","full_name":"velo-project/routes-service","owner":"velo-project","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-21T01:44:26.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-07T07:47:19.380Z","etag":null,"topics":["datadog","gin","go","grpc","postgresql","sentry"],"latest_commit_sha":null,"homepage":"","language":"Go","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/velo-project.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-23T01:37:34.000Z","updated_at":"2025-11-21T01:44:29.000Z","dependencies_parsed_at":"2025-09-26T03:39:51.642Z","dependency_job_id":null,"html_url":"https://github.com/velo-project/routes-service","commit_stats":null,"previous_names":["velo-project/routes-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/velo-project/routes-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velo-project%2Froutes-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velo-project%2Froutes-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velo-project%2Froutes-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velo-project%2Froutes-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/velo-project","download_url":"https://codeload.github.com/velo-project/routes-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/velo-project%2Froutes-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["datadog","gin","go","grpc","postgresql","sentry"],"created_at":"2025-09-28T01:02:58.937Z","updated_at":"2026-04-07T07:47:26.905Z","avatar_url":"https://github.com/velo-project.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Routes Service\n\nThis is a Go project that provides a service for managing tracks and routes.\n\n## Getting Started\n\nTo get started with this project, you'll need to have Go installed on your machine. You'll also need to have a running instance of PostgreSQL.\n\n### Prerequisites\n\n- Go\n- PostgreSQL\n- Docker (optional)\n\n### Installation\n\n1. Clone the repository:\n   ```sh\n   git clone https://github.com/velo-project/routes-service\n   ```\n2. Install the dependencies:\n   ```sh\n   go mod tidy\n   ```\n3. Set up the environment variables:\n   ```sh\n   cp .env.example .env\n   ```\n   The following environment variables are used:\n   - `POSTGRES_CONNECTION_STRING`: The connection string for the PostgreSQL database.\n   - `RSA_PUBLIC_KEY`: The path to the RSA public key for verifying JWT tokens.\n\n4. Run the database migrations:\n   ```sh\n   # Assuming makefile exists or using a migration tool\n   migrate -path db/migrations -database \"postgres://user:password@host:port/dbname?sslmode=disable\" up\n   ```\n5. Run the server:\n   ```sh\n   go run cmd/api/main.go\n   ```\n\n### Docker\n\nTo build and run the project using Docker, you can use the following commands:\n\n1. Build the Docker image:\n   ```sh\n   docker build -t routes-service .\n   ```\n2. Run the Docker container:\n   ```sh\n   docker run --env-file .env -p 8080:8080 routes-service\n   ```\n\n## Folder Structure\n\nThe project is organized into the following folders:\n\n- `cmd/api`: Contains the main application entry point.\n- `db/migrations`: Contains the database migrations.\n- `internal`: Contains the core application logic.\n  - `adapters`: Contains the adapters for connecting to external services.\n    - `database`: Contains the adapters for modifying PostgreSQL Data\n    - `grpc`: Contains the adapters for call procedures in other APIs\n    - `http`: Contains the rest controllers\n  - `core`: Contains the core domain logic.\n    - `domain`: Contains the domain models.\n    - `ports`: Contains the interfaces for the repositories and services.\n    - `services`: Contains the application services.\n- `plan`: Contains the project plan.\n- `proto`: Contains the protobuf files for the gRPC services.\n\n## API Endpoints\n\nThe following API endpoints are available:\n\n- `POST /tracks`: Creates a new track.\n- `GET /tracks`: Finds all routes for a given user.\n- `DELETE /tracks/:trackId`: Deletes a track.\n\n## Development\n\n### Creating Migrations\n\nTo create a new migration, you can use the following command:\n\n```sh\nmigrate create -ext sql -dir db/migrations -seq create_my_migration\n```\n\nThis will create a new migration file in the `db/migrations` folder.\n\n### Running Migrations\n\nTo run the migrations, you can use the following command:\n\n```sh\nmigrate -path db/migrations -database \"postgres://user:password@host:port/dbname?sslmode=disable\" up\n```\n\nMake sure to replace the connection string with your own.\n\n\n### Generating Protobuf\n\nTo generate the `.pb.go` file from the `.proto` file, you can use the following command:\n\n```sh\nprotoc --go_out=. --go-grpc_out=. proto/user_service.proto\n```\n\n## Dependencies\n\nThe project uses the following dependencies:\n\n- [gin-gonic/gin](https://github.com/gin-gonic/gin)\n- [golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt)\n- [google.golang.org/grpc](https://grpc.io/)\n- [google.golang.org/protobuf](https://developers.google.com/protocol-buffers)\n- [lib/pq](https://github.com/lib/pq)\n- [joho/godotenv](https://github.com/joho/godotenv)\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelo-project%2Froutes-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvelo-project%2Froutes-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvelo-project%2Froutes-service/lists"}