DarkKowalski / city-info-meshup

SOA Homework SSE Tongji University 2020

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SOA Homework

All APIs can return a result in either JSON or XML format, read API Doc and checkout samples for more info.

Notice

Read Dockerfile.api and Dockerfile.web, you can remove or change gem and npm mirrors

Read docker-compose.yml and setup environment variables!

All data comes from the the Internet and make sure it can be accessed from your country!

You must setup API Keys for

  • openweathermap.org
  • newsapi.org
  • aqicn.org

Usage

docker-compose up

then open http://localhost:8080

Screenshot

Notice

screenshot

Meshup

screenshot

screenshot

Failure

screenshot

Design and Implementation

Backend

Based on sinatra.rb (Ruby)

backend/app/services contains upstream API services

backend/app/routes contains our own API services

Frontend

Based on Vue (Typescript)

frontend/src/api/api.ts contains utils to request our own API services

frontend/src/components/Meshup.vue contains our UI layout and its own business logic

Dataflow

A user acquires static pages

               request
End user     ----------->    Server 
(Browser)    <----------- (Web Service)
             static pages

A user queries a city

               request                    request
Our code     ----------->    Server     ----------->    Upstream APIs
(Browser)    <----------- (API Service) <-----------    (API Service)
            gathered data                sparse data

About

SOA Homework SSE Tongji University 2020


Languages

Language:Ruby 47.1%Language:Vue 41.2%Language:TypeScript 8.1%Language:HTML 3.2%Language:JavaScript 0.4%