{"id":21894118,"url":"https://github.com/hackgt/piranha","last_synced_at":"2025-04-15T15:22:44.247Z","repository":{"id":39006533,"uuid":"248908677","full_name":"HackGT/piranha","owner":"HackGT","description":"Internal financial processes made fun, or at least more efficient","archived":false,"fork":false,"pushed_at":"2023-09-29T20:21:29.000Z","size":5874,"stargazers_count":5,"open_issues_count":56,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T21:51:10.039Z","etag":null,"topics":["finance","graphql","hackgt","postgresql","prisma2","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/HackGT.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}},"created_at":"2020-03-21T04:49:28.000Z","updated_at":"2024-06-29T19:23:02.000Z","dependencies_parsed_at":"2023-09-29T03:11:46.312Z","dependency_job_id":null,"html_url":"https://github.com/HackGT/piranha","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/HackGT%2Fpiranha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HackGT%2Fpiranha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HackGT%2Fpiranha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HackGT%2Fpiranha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HackGT","download_url":"https://codeload.github.com/HackGT/piranha/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249095364,"owners_count":21211911,"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":["finance","graphql","hackgt","postgresql","prisma2","react","typescript"],"created_at":"2024-11-28T13:19:00.209Z","updated_at":"2025-04-15T15:22:44.220Z","avatar_url":"https://github.com/HackGT.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Development Overview\n\nPiranha is an application to help HackGT manage our internal financial processes (\"sinking our teeth in\") so to speak.\n\n## Architecture\n\n##### Backend Architecture\n\n- Language: TypeScript\n- Framework: Node.js/Express\n- Database: Postgres\n- Authentication: [Ground Truth](https://github.com/hackgt/ground-truth)\n- API: GraphQL ([Apollo Server](https://www.apollographql.com/docs/apollo-server))\n- Dependency management: yarn\n- Where: [/server](/frontend)\n\n##### Frontend Architecture\n\n- Language: TypeScript\n- Framework: React\n- UI Library: [Ant Design](https://ant.design)\n- API Client: GraphQL ([Apollo Client](https://www.apollographql.com/docs/react/))\n- Dependency management: yarn\n- Where: [/client](/client)\n\n## Setup\n\n#### Server\n\n1. `cd server` then `yarn install`\n2. `yarn migrate:dev` to setup database\n3. `yarn generate` to generate Prisma client and GraphQL types\n4. `yarn dev`\n\n#### Environment Variables\n\nOnce you have the backend dependencies installed,\nconfigure the backend environment variables by copying [.env.example](.env.example) to a new file called `.env` and filling in the variables.\n\nTo setup google file upload, add your Google service account credentials to a file called `google-application-key.json` in the config directory.\n\n#### Client\n\n1. `cd client` then `yarn install`\n2. `yarn start`\n\n## Utilities\n\n### Typings\n\nFirst, this will generate TypeScript typings and a new Prisma client from your Prisma schema (`schema.prisma`). Then, it will also generate TypeScript typings based on your GraphQL schema (`api.graphql`) via GraphQL Code Generator.\n\n1. `yarn generate`\n\nNote, anytime either of these schemas are changed, you will need to rerun `yarn generate` to generate new typings.\n\n### Migrations\n\nAfter changing the Prisma schema (`schema.prisma`), run the following commands in the server folder to migrate the database and generate a new Prisma client.\n\n1. `yarn migrate:dev`\n2. `yarn generate`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackgt%2Fpiranha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackgt%2Fpiranha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackgt%2Fpiranha/lists"}