{"id":26296346,"url":"https://github.com/maxroecker/votewatch","last_synced_at":"2025-03-15T04:17:57.912Z","repository":{"id":222542001,"uuid":"757688581","full_name":"MaxRoecker/votewatch","owner":"MaxRoecker","description":"A simple legislative vote watch app.","archived":false,"fork":false,"pushed_at":"2024-02-14T19:47:05.000Z","size":301,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-17T22:16:26.596Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/MaxRoecker.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}},"created_at":"2024-02-14T19:42:04.000Z","updated_at":"2024-02-14T19:42:35.000Z","dependencies_parsed_at":"2024-02-14T21:01:08.124Z","dependency_job_id":null,"html_url":"https://github.com/MaxRoecker/votewatch","commit_stats":null,"previous_names":["maxroecker/votewatch"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxRoecker%2Fvotewatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxRoecker%2Fvotewatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxRoecker%2Fvotewatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxRoecker%2Fvotewatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaxRoecker","download_url":"https://codeload.github.com/MaxRoecker/votewatch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243681038,"owners_count":20330155,"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":[],"created_at":"2025-03-15T04:17:57.351Z","updated_at":"2025-03-15T04:17:57.901Z","avatar_url":"https://github.com/MaxRoecker.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VoteWatch\n\nA simple legislative vote watch app made with Bun, Remix, React, Typescript, and\nTailwindCSS. Tested with Vitest and Playwright.\n\n## Development\n\nUse `bun` or `npm` to install dependencies. Make sure you are using the latest stable version of Node.js (v20.11).\n\n```bash\nnpm install\nbun install\n```\n\nTo start the app in development mode, rebuilding assets on file changes:\n\n```sh\nnpm run dev\nbun run dev\n```\n\n### Testing and linting\n\nYou can use the `test` script to run all the tests.\n\n```bash\nnpm run test\nbun run test\n```\n\nYou can use the `e2e` script to run all available E2E tests with Playwright.\n\n```bash\nnpm run e2e\nbun run e2e\n```\n\nYou can lint your code with the `lint` script, only type check the code with\nthe `typecheck` script, or check the formatting with the `format` script.\n\n```bash\nnpm run lint\nnpm run typecheck\nnpm run format\n\nbun run lint\nbun run typecheck\nbun run format\n```\n\n### Structure\n\nThis project follows a \"domain\" structuring, i.e., all the directories inside\nthe `app/` represent a domain. The only exception is the `routes` directory, which is used to define the routes in Remix. Currently, there are three business domains: `legislators`, `bills` and\n`votes`. There is also the `commons` domain, which is used to group\nresources and code that can be used anywhere in the application. Inside a domain\ndirectory, there are other directories: `components`, `hooks`, `assets`, and\n`mocks` which are self-explanatory in their contents.\n\nTests are placed right next to the code they are testing. If there is a\ncomponent file `component.tsx`, its test should be placed in the same directory\nas `component.test.tsx`.\n\nAll the E2E tests are palced apart from the `app` directory, under its own\ndirectory named `e2e`.\n\n## Deployment\n\nFirst, build the app for production:\n\n```sh\nnpm run build\nbun run build\n```\n\nThen run the app in production mode:\n\n```sh\nnpm start\nbun start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxroecker%2Fvotewatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxroecker%2Fvotewatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxroecker%2Fvotewatch/lists"}