LocalBytes is a web application designed to help users discover local restaurants in Columbia. The platform allows users to filter restaurants based on price range and rating to find dining options that match their needs. Users can leave comments and share their experiences, making it easier for others to find the perfect local dining spot without visiting multiple restaurant websites.
π Hosted Application: https://localbytes.vercel.app π½οΈ Presentation Slides: View our presentation slides here
- π Details Page: Find restaurant details including address, average rating, and user comments
- π Advanced Filtering: Filter by price range and restaurant rating
- πΊοΈ Mapbox Integration: View restaurant locations on a map
- π¬ User Comments: Create, edit, and delete comments and view comments left by other users
- Frontend: Angular application
- Backend: Express/Node.js API
- Database: MongoDB for data storage
[!π‘ TIP] The frontend has prettier and eslint configured. You can run the following commands to format the code:
npm run format- to format the code
npm run lint- to lint the code
frontend/
βββ src/
β βββ app/
β β βββ components/ # Reusable components (@components)
β β βββ models/ # Data models (interfaces) (@models)
β β βββ pages/ # Application pages (components) (@pages)
β β βββ services/ # API services (@services)
β β βββ app.config.ts # Main configuration file
β β βββ app.module.ts # Main module
β β βββ app.routes.ts # Main routing file (define routes here)
β βββ environments/ # Environment configuration (@environment)
β β βββ environment.ts # Main environment file (define environment variables here)
β βββ index.html # Index html file
βββ angular.json # Angular configuration file
βββ package.json # Frontend package file
βββ tsconfig.json # TypeScript configuration file[!π‘ TIP] The API is documented with apidoc and is available by default at
http://localhost:5000/api-docs. You can run the following command to generate the documentation:
npm run docs- to generate the documentation
backend/
βββ controllers/ # Methods for handling API requests from the frontend
βββ docs/ # Automatically generated API documentation
βββ models/ # Mongoose models for MongoDB collections
βββ routes/ # Definitions for API routes
βββ services/ # Services for handling API requests to the outside
βββ utils/ # Utility functions
β βββ config.js # Handles environment variables
| βββ db.js # Handles database connection
β βββ helpers.js # General helper functions
β βββ serverUtils.js # Handles port normalization
β βββ components/ # Reusable components (@components)
βββ index.js # Backend entry point
βββ package.json # Backend package file- Node.js
- MongoDB database
- Create
environment.tsusing the exampleenvironment.tsfile and update the values with your keys. - Install dependencies:
cd frontend npm install - Run the frontend server:
The application will be available at http://localhost:4200.
ng serve
- Install dependencies:
cd backend npm install - Add a
.envfile in the root of the repository using theexample.envfile and replace the values with your own keys. - Seed data into your database:
Replace
npm run seed <query>
<query>with a Google Maps search query. - Run the backend server:
The API will run on http://localhost:5000.
npm run dev
cd backend
npx nodemon --watch routes --ext js --exec "npm run docs"Optional command to live update the docs when changes are made to the routes.
- Harrison Surma (Full Stack Developer)
- Sam Whitaker (Frontend Developer & Designer)
- Tom Winterton (Frontend Developer & Hosting)
- Luke Deffenbaugh (Backend Developer)