Skip to content

UOA-DCML/se310-plateful

This project is associated with the University of Auckland SOFTENG 310.

Contributors Forks Stargazers Issues MIT License


image

Plateful

Plateful is a full-stack web application for discovering restaurants. It helps users find restaurants by name, cuisine, tags, and more, with a modern, responsive interface and a robust backend API.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

image

Plateful is a full-stack web app for discovering restaurants with search, filter, and favorites functionality.
Built with a modern tech stack, it connects a React frontend, Spring Boot backend, and MongoDB database to deliver a smooth and responsive user experience.

Key Features:

  • 🍽️ Search & filter restaurants by cuisine, tags, or name
  • ⭐ Save favorites for quick access
  • 🗺️ Map integration for location-based search
  • 📱 Responsive design with a clean UI

(back to top)

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

  • React
  • Vite
  • Spring Boot
  • MongoDB
  • TomTom

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • Node.js & npm

    Download from Node.js official site (v18+ recommended). Verify installation:

    node -v
    npm -v
  • Java 17

    Install from Oracle JDK. Verify installation:

    java -version
  • Maven 3.8+

    Download from Maven official site. Verify installation:

    mvn -v
  • MongoDB

    We use a MongoDB Atlas cluster to store user data. Contact a team member to get the connection string. Add it to your .env as:

    MONGODB_URI=<connection string>

(back to top)

Installation

Quick Start (Recommended)

  1. Clone the repo

    git clone https://github.com/UOA-DCML/se310-plateful
    cd se310-plateful
  2. Install dependencies

    npm run install:all
  3. Start both frontend and backend

    npm start
  4. Open your browser to http://localhost:5173/

That's it! Both services are now running. See ROOT_COMMANDS.md for all available commands.

Manual Installation (Alternative)

If you prefer to run services separately:

  1. Clone the repo

    git clone https://github.com/UOA-DCML/se310-plateful
  2. Navigate to the frontend folder and install npm packages

    cd frontend
    npm install
  3. Now, make a new terminal and navigate to the backend folder and run SpringBoot

    cd backend
    mvn spring-boot:run
  4. Go back to the frontend terminal, and start the application

    npm run dev
  5. You can click the link on the terminal or can type http://localhost:5173/ in your own browser

  6. To test on other devices and host website

    npm run dev -- --host

(back to top)

Available Commands

All commands can be run from the project root directory.

Installation

Command Description
npm run install:frontend Install frontend dependencies
npm run install:all Install all project dependencies

Development

Command Description
npm start Start both frontend & backend
npm run dev:all Start both services (same as start)
npm run dev:frontend Start frontend only
npm run dev:backend Start backend only

Building

Command Description
npm run build:all Build both (parallel)
npm run build:sequential Build both (one after another)
npm run build:frontend Build frontend only
npm run build:backend Build backend only

Testing

Command Description
npm run test:all Run all tests (parallel)
npm run test:frontend Run frontend tests
npm run test:backend Run backend tests

Cleaning

Command Description
npm run clean:all Clean all build artefacts
npm run clean:frontend Clean frontend (dist, node_modules)
npm run clean:backend Clean backend (Maven clean)

Other

Command Description
npm run lint:frontend Run ESLint on frontend
npm run preview:frontend Preview production build

For more detailed information, see ROOT_COMMANDS.md.

(back to top)

.env File

In order for Sonar to work, a .env file containing the API key must be placed in the backend folder. Please contact us (jkan172@aucklanduni.ac.nz) in order to get this .env file.

Roadmap

  • A1 Feature
  • A1 Feature
  • A2 Feature

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Top contributors

contrib.rocks image

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Acknowledgments

(back to top)

Contributors 13

Languages