{"id":18720602,"url":"https://github.com/nareshbhatia/autonomous-research","last_synced_at":"2025-11-10T21:30:18.769Z","repository":{"id":259072526,"uuid":"876234596","full_name":"nareshbhatia/autonomous-research","owner":"nareshbhatia","description":"Research before the full-fledged autonomous project","archived":false,"fork":false,"pushed_at":"2024-10-23T23:56:23.000Z","size":716,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T03:36:22.456Z","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/nareshbhatia.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":"2024-10-21T16:12:48.000Z","updated_at":"2024-10-23T23:56:26.000Z","dependencies_parsed_at":"2024-10-25T08:08:23.052Z","dependency_job_id":"e06d7d2d-e328-4c0b-a104-0808c097a174","html_url":"https://github.com/nareshbhatia/autonomous-research","commit_stats":null,"previous_names":["nareshbhatia/autonomous-research"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nareshbhatia%2Fautonomous-research","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nareshbhatia%2Fautonomous-research/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nareshbhatia%2Fautonomous-research/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nareshbhatia%2Fautonomous-research/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nareshbhatia","download_url":"https://codeload.github.com/nareshbhatia/autonomous-research/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239583915,"owners_count":19663291,"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":"2024-11-07T13:31:49.864Z","updated_at":"2025-11-10T21:30:18.714Z","avatar_url":"https://github.com/nareshbhatia.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Autonomous Research\n\nResearch before the full-fledged autonomous project.\n\n## Autonomous App\n\nHere's a screenshot of the current state of the app. Note that the app shows the\nroute of the selected vehicle from the starting point to the destination.\n\n![Autonomous Screenshot](assets/screenshot.jpg)\n\n### Architecture\n\n![Architecture](assets/architecture.png)\n\n### Workspaces\n\n- Fleet Simulator: `apps/fleet-simulator`\n- Vehicle Events Service: `apps/vehicle-events`\n- Redis Server: Started via `./docker-compose.yml`\n- API Gateway: `apps/api-gateway`\n- Autonomous Frontend: `apps/autonomous`\n- Type definitions and shared functions:`packages/autonomous-research-domain`\n- Vehicle Actions Service: Not implemented yet\n\n### Running the Autonomous App\n\n- Build all workspaces: `npm run build`\n- Build all Docker images:\n  - Fleet Simulator: `cd apps/fleet-simulator \u0026\u0026 npm run docker-build`\n  - Vehicle Events Service: `cd apps/vehicle-events \u0026\u0026 npm run docker-build`\n  - API Gateway: `cd apps/api-gateway \u0026\u0026 npm run docker-build`\n- Run the Autonomous frontend:\n  - `cd apps/autonomous \u0026\u0026 npm run dev`\n  - Open browser window at http://localhost:3000/\n- Run Docker Compose:\n  - `docker compose up`\n  - Then immediately refresh the Autonomous home page in the browser so that all\n    markers get routes\n\n### Mapbox Directions App\n\nA simple app to demonstrate the use of Mapbox Directions API.\n\nGo to `apps/mapbox-directions` and follow the instructions in the\n[README](apps/mapbox-directions/README.md).\n\n## Prerequisites for development\n\n1. [Node Version Manager](https://github.com/nvm-sh/nvm) (nvm) - allows using\n   different versions of node via the command line\n\n## Getting Started\n\n```shell\nnvm use        # use the required version of node\nnpm ci         # install dependencies\nnpm run build  # build all packages\nnpm run dev    # run apps\n\n# in a separate shell\nnpm run storybook\n```\n\nOpen browser windows at the following URLs to see the respective apps:\n\n1. http://localhost:3000/: Autonomous App\n2. http://localhost:6006/: Storybook\n\n\u003e Note: Do not run `npm install` or `npm ci` in any of the subdirectories. It\n\u003e will break the build. There should be only one `package-lock.json` file in the\n\u003e entire repo (at the root).\n\n## All Commands\n\n```\nnpm ci                   # install dependencies\nnpm run build            # builds all workspaces\nnpm run ci-validate      # builds, lints, formats, and tests all code (runs in CI pipeline, don't run locally)\nnpm run clean            # deletes all build artifacts\nnpm run commit           # displays commit helper prompt to ensure your commits use conventional commits\nnpm run dev              # run app\nnpm run fix              # lints, formats and attempts to fix any issues (requires `npm run build` has been ran)\nnpm run format           # formats all workspaces, useful for debugging format issues (generally `npm run fix` is preferred)\nnpm run lint             # runs the linter on all workspaces, useful for debugging lint issues (generally `npm run fix` is preferred)\nnpm run storybook        # runs storybook\nnpm run test             # runs full build, lint, format, and all tests - run before pushing to remote\n```\n\n## Common Workflows\n\n### Creating New Components\n\nUse [Code Shaper](https://www.code-shaper.dev/) to create new components. This\nwill give you a good starting point that is consistent with React best\npractices.\n\nHere's an example of creating a component called `EventList` using Code Shaper:\n\n```sh\n$ npx shaper\n? Which plugin would you like to run? React (@code-shaper/react - generates React applications)\n? Which generator would you like to run? component (generates a component)\n? Component name? (e.g. TextField) EventList\n? Which workspace should this go to? apps/autonomous-research\n? Parent directory within workspace? src/components/EventList\n\nCreating EventList...\n  EventList.stories.tsx\n  EventList.test.tsx\n  EventList.tsx\n  index.ts\n\nDone.\n```\n\n### Production build\n\nTo build all packages and apps for production, run the following command:\n\n```shell\nnpm ci\nnpm run build\n```\n\n### Clean build\n\nRemoves all build artifacts and performs a clean build. Run these steps before\npushing to remote.\n\n```shell\nnpm run clean\nnvm use\nnpm ci\nnpm run build\nnpm run fix\nnpm test\n```\n\nFor an \"aggressive\" clean build, add a step to remove the `package-lock.json`\nfile as shown below. This will build the lock file from scratch.\n\n```shell\nnpm run clean\nnvm use\nrm package-lock.json\nnpm install\nnpm run build\nnpm run fix\nnpm test\n```\n\n### Running unit tests\n\nThe following command runs a full build, lint, format, and all tests. However,\nit uses the Turborepo cache to skip steps that have no changes since the last\nrun. Hence it is very efficient. **Always run this command before pushing to\nremote.**\n\n```shell\nnpm test\n```\n\n### Running end-to-end tests using dev build\n\n```shell\nnpm run dev # starts a local server hosting the react app\n\n# run e2e tests non-interactively (run in a different shell)\nnpm run e2e\n\n# run e2e tests in the Playwright user interface (run in a different shell)\nnpm run e2e:ui\n```\n\n### Linting, formatting and fixing coding issues\n\n```shell\nnpm run fix\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnareshbhatia%2Fautonomous-research","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnareshbhatia%2Fautonomous-research","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnareshbhatia%2Fautonomous-research/lists"}