Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Houses the code for the back-end of the food-services-aggregator app

Notifications You must be signed in to change notification settings

adam-shamaa/food-services-backend-V2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Food Services Aggregator Backend (V2)

**As of January 2024, this project will no longer be maintained. Demo videos of the working application are available at the https://github.com/adam-shamaa/food-services-frontend-V2

Table of Contents

  1. Technologies
  2. Overview
    1. API Contract
    2. Architecture
      1. System Centric View
      2. Container Centric View
      3. Component Centric View
  3. Getting Started
    1. Development
      1. Docker
      2. Maven
  4. Additional Resources

Technologies

  • Java
    • Spring
    • Maven
    • jsonschema2pojo-maven-plugin
    • mapstruct-annotation-processor
  • Docker
  • Github Actions
  • MongoDB
  • Heroku

Overview

This repository houses the API for the food-services-aggregator application.

The main objective is to expose an API which enables information aggregation from delivery services (i.e. SkipTheDishes, UberEats, ...) such as available restaurants and their delivery prices, service fees & menu items.

API Contract

This server conforms to OpenAPI specification housed in a seperate repository which publishes auto-generated stubs & classes to a package at Github Maven Apache Registry consumed by this project.

Architecture

System Centric View

V3 - Systems Context Diagram - C4 Model

Container Centric View

V3 - Container Diagram - C4 Model

Component Centric View

V3 - Component Diagram - C4 Model

Getting Started

Development

Using Docker

  1. Ensure Docker is running
  2. Run docker-compose up

Using Maven

  1. Ensure maven 3.0.0 is installed
  2. Run mvn spring-boot:run

Additional Resources

  • API client library in Insomnia, contains:
    • API requests for UberEats and SkipTheDishes
    • API requests for backend server w/ environments for local dev and prod servers