{"id":24901557,"url":"https://github.com/pgalias/foodby","last_synced_at":"2025-07-15T13:16:48.118Z","repository":{"id":99679628,"uuid":"404127388","full_name":"pgalias/foodby","owner":"pgalias","description":"Fullstack app for finding restaurants in you neighbourhood","archived":false,"fork":false,"pushed_at":"2021-09-29T21:24:23.000Z","size":1493,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T22:06:03.667Z","etag":null,"topics":["food","fullstack","microservices","monorepo","nestjs","react","restaurant","typescript"],"latest_commit_sha":null,"homepage":"","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/pgalias.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}},"created_at":"2021-09-07T21:28:06.000Z","updated_at":"2021-09-29T21:24:26.000Z","dependencies_parsed_at":"2023-04-01T13:03:03.737Z","dependency_job_id":null,"html_url":"https://github.com/pgalias/foodby","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pgalias/foodby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ffoodby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ffoodby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ffoodby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ffoodby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgalias","download_url":"https://codeload.github.com/pgalias/foodby/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgalias%2Ffoodby/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265437625,"owners_count":23765124,"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":["food","fullstack","microservices","monorepo","nestjs","react","restaurant","typescript"],"created_at":"2025-02-01T21:16:36.125Z","updated_at":"2025-07-15T13:16:48.075Z","avatar_url":"https://github.com/pgalias.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Foodby\n\nVery simple interface to find a desired restaurant in your neighbourhood.\n\n\u003cimg src=\"foodby.jpg\" alt=\"Foodby interface\" title=\"Foodby\"/\u003e\n\n## Table of contents\n\n* [About](#about)\n* [Project structure](#project-structure)\n    + [Tech stack](#tech-stack)\n    + [Services](#services)\n* [Running it locally](#running-it-locally)\n    + [Prerequisites](#prerequisites)\n    + [Available commands](#available-commands)\n    + [Running apps](#running-apps)\n* [Further changes](#further-changes)\n* [Contact](#contact)\n\n## About\n\nThe main assumption is that to allow user just to open the application and easily find interesting restaurants nearby.\nFrom the user perspective, there is a possibility to write down the current location in the search bar, and add optional\nfilters like range (the max distance between user location and the restaurant), cuisine types, price.\n\n\u003e below features are in progress\n\nAdditionally, user is able to sign in and out. In his/her settings is able to add preferred cuisines (which will fill\ninitially the cuisine filter on the map view) and create a friend list (each friend can have it own preferred cuisines).\nLogged user has one more additional filter - to select friends who will attend with him/her to restaurant. Basing on all\nthe attendees, application will choose particular cuisine types to fulfil all attendees' desires.\n\n## Project structure\n\nProject is structured in a monorepo \u0026 microservices way, so under the packages directory there are multiple\nmicroservices and microfrontends.\n\n### Tech stack\n\n1. Backend\n    - NestJs\n    - TypeScript\n2. Frontend\n    - React\n    - TypeScript\n    - React Query\n    - Leaflet\n    - Storybook\n\n### Services\n\n1. Backend\n    - Search - (Nest.js) - it's providing a data from the external restaurants API\n    - Server - (Nest.js) - aggregate application, it's providing a REST API for web clients\n    - Authentication (in plans) - (Nest.js) - it's providing a possibility to sign in/out\n2. Frontend\n    - Common Components UI - (React) - all the common components used across all the applications\n    - Web UI - (React) - aggregate application\n    - Map UI (in plans) - (React) - application with map view (currently inside Web UI service)\n    - Users UI (in plans) - (React) - application with user settings view\n    - Mobile App (in plans) - (probably React Native)\n3. Commons - common logic and models used across all the both backend and frontend services\n\n## Running it locally\n\n### Prerequisites\n\nApplication is using a [Yelp](https://www.yelp.com) as a service for receiving restaurant data, so it's necessary to\nreceive the [API Key](https://www.yelp.com/developers/documentation/v3/authentication) from there and put it into the\n[Search Service](https://github.com/pgalias/foodby/tree/main/packages/search) .env file under the **YELP_API_KEY**\n\nMoreover, application is using the yarn workspaces, so yarn is only one available package manager here.\n\n### Available commands\n\n- `yarn start:frontend` - runs all the microfrontends at once\n- `yarn start:backend` - runs all the microservices at once\n- `yarn start:storybook` - runs a storybook from the Common Components UI package\n- `yarn test` - runs a tests scripts from all the packages\n- `yarn lint` - runs a lint scripts from all the packages\n\n### Running apps\n\n1. Run all the backend services by `yarn start:backend`\n2. Run all the frontend services by `yarn start:frontend` (in different terminal session)\n3. Go to `localhost:3000`\n\n## Further changes\n\nAll the plans for the application can be found [here](https://github.com/pgalias/foodby/projects)\n\n## Contact\n\nPawel Galias - [linkedin](https://linkedin.com/in/pawgalias) - [pawel@galias.me](pawel@galias.me)\n\nProject Link: [https://github.com/pgalias/foodby](https://github.com/pgalias/foodby)\n\nAre you seeing bugs or potential improvements? Your feedback is more than welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgalias%2Ffoodby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgalias%2Ffoodby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgalias%2Ffoodby/lists"}