{"id":24929840,"url":"https://github.com/traptitech/traportfolio","last_synced_at":"2025-06-15T20:44:17.144Z","repository":{"id":37305372,"uuid":"268991546","full_name":"traPtitech/traPortfolio","owner":"traPtitech","description":"部員の活動紹介サービス traPortfolio","archived":false,"fork":false,"pushed_at":"2025-04-01T17:54:38.000Z","size":9847,"stargazers_count":6,"open_issues_count":60,"forks_count":0,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-09T21:51:10.993Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"https://portfolio.trap.jp","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/traPtitech.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}},"created_at":"2020-06-03T04:45:38.000Z","updated_at":"2025-03-14T02:02:26.000Z","dependencies_parsed_at":"2023-10-04T22:01:02.778Z","dependency_job_id":"107cbc11-1e0d-4b54-b41c-1140cc210ac4","html_url":"https://github.com/traPtitech/traPortfolio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traPtitech%2FtraPortfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traPtitech%2FtraPortfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traPtitech%2FtraPortfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traPtitech%2FtraPortfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/traPtitech","download_url":"https://codeload.github.com/traPtitech/traPortfolio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119402,"owners_count":21050754,"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":["hacktoberfest"],"created_at":"2025-02-02T13:51:59.388Z","updated_at":"2025-04-09T21:51:17.388Z","avatar_url":"https://github.com/traPtitech.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# traPortfolio\n\n[![GitHub release](https://img.shields.io/github/release/traPtitech/traPortfolio.svg?logo=github)](https://GitHub.com/traPtitech/traPortfolio/releases/) [![CI](https://github.com/traPtitech/traPortfolio/actions/workflows/main.yaml/badge.svg)](https://github.com/traPtitech/traPortfolio/actions/workflows/main.yaml) [![Build image](https://github.com/traPtitech/traPortfolio/actions/workflows/image.yaml/badge.svg)](https://github.com/traPtitech/traPortfolio/actions/workflows/image.yaml) [![codecov](https://codecov.io/gh/traPtitech/traPortfolio/branch/main/graph/badge.svg?token=2HB6P7RUX8)](https://codecov.io/gh/traPtitech/traPortfolio) [![OpenAPI](https://img.shields.io/badge/OpenAPI-apis.trap.jp-6BA539?logo=openapiinitiative)](https://apis.trap.jp/?urls.primaryName=traPortfolio)\n\n- Backend repository\n  - [traPtitech/traPortfolio](https://github.com/traPtitech/traPortfolio) (this repository)\n- Frontend repositories\n  - [traPtitech/traPortfolio-UI](https://github.com/traPtitech/traPortfolio-UI)\n  - [traPtitech/traPortfolio-Dashboard](https://github.com/traPtitech/traPortfolio-Dashboard)\n\n## Requirements\n\n- Go 1.22.5 or later\n- Docker 27.1.0 or later\n- Docker Compose 2.22.0 or later\n\n## Quick Start\n\n```bash\ndocker compose up # --build -d\n```\n\nor\n\n```bash\n# enable live reload\ndocker compose watch\n```\n\nNow you can access to\n\n- \u003chttp://localhost:1323\u003e for backend server.\n- \u003chttp://localhost:3001\u003e for adminer\n  - username: `root`\n  - password: `password`\n  - database: `portfolio`\n  - port: `3306`\n\n## Contributing\n\nIf you want to contribute to traPortfolio, then follow these pages.\n\n- [Architecture memo (in Japanese)](./docs/architecture.md)\n- [API schema](./docs/swagger/traPortfolio.v1.yaml)\n- [DB schema](./docs/dbschema)\n\n## Tasks\n\nUsable tasks are below.\n\n\u003e [!TIP]\n\u003e You can use `xc` to run the following tasks easily.\n\u003e See \u003chttps://xcfile.dev\u003e for more details.\n\u003e\n\u003e ```bash\n\u003e go install github.com/joerdav/xc/cmd/xc@latest\n\u003e ```\n\n### gen\n\nGenerate code.\n\n```bash\ngo generate -x ./...\n```\n\n### lint\n\nRun linter (golangci-lint).\n\n```bash\ngo run github.com/golangci/golangci-lint/cmd/golangci-lint@latest run --fix ./...\n```\n\n### test:unit\n\nRun unit tests.\n\n```bash\ngo test -v -cover -race ./internal/...\n```\n\n### test:integration\n\nRun integration tests.\n\n```bash\ngo test -v -cover -race ./integration_tests/...\n```\n\n### test:all\n\nRun all tests.\n\nRequires: test:unit, test:integration\n\nRunDeps: async\n\n### db:migrate\n\nMigrate the database.\n\n```bash\n# TODO: use environment variables for config\ndocker compose run --build --entrypoint \"/traPortfolio -c /opt/traPortfolio/config.yaml --db-host mysql --only-migrate\" backend\n```\n\n### db:gen-docs\n\nGenerate database schema documentation with tbls.\n\nRequires: db:migrate\n\n```bash\nrm -rf ./docs/dbschema\ngo run github.com/k1LoW/tbls@latest doc\n```\n\n### db:lint\n\nLint the database schema with tbls.\n\nRequires: db:migrate\n\n```bash\ngo run github.com/k1LoW/tbls@latest lint\n```\n\n### openapi:lint\n\nLint the OpenAPI schema with Spectral.\n\n```bash\ndocker run --rm -it -w /tmp -v $PWD:/tmp stoplight/spectral:latest lint ./docs/swagger/traPortfolio.v1.yaml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraptitech%2Ftraportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftraptitech%2Ftraportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraptitech%2Ftraportfolio/lists"}