Giter VIP home page Giter VIP logo

helsinkiunicollab / weatherbasedrecommender Goto Github PK

View Code? Open in Web Editor NEW
10.0 0.0 4.0 19.84 MB

Web application that recommends activities in Helsinki

Home Page: http://128.214.253.51:3000/

License: MIT License

HTML 0.78% JavaScript 49.30% Python 46.72% Dockerfile 0.44% Shell 0.69% CSS 2.07%
flask fmi helsinki-area ilmatieteenlaitos-avoin-data leaflet material-ui react palvelukartta gunicorn cypress

weatherbasedrecommender's Introduction

ezgif-4-af3762fc40

CI CD Codecov

The purpose of this project is to develop an application that provides users with personalized recommendations for points of interest and routes in Helsinki. It takes into consideration the current and forecasted weather conditions to enhance the generated suggestions. Read more about the features of the application.

Application can be accessed here: Weather-Based Recommender

Here's a video introduction of the project.

This application is being created as part of the software engineering course at the University of Helsinki.

License

Instructions

# Give permissions for a script to specify the backend URL
$ chmod +x generate_local_env.sh

# Replace the ellipsis inside the single quotes with your MongoDB development URL
$ ./generate_local_env.sh '...' 

# Start the frontend and backend services on ports 5000 and 3000, respectively
$ docker compose up

To get the MongoDB development URL, read more here. To run the frontend and backend services individually, refer to the instructions provided in the frontend and backend README's respectively.

Documentation

Backlogs

Sprints

weatherbasedrecommender's People

Contributors

bionic1251 avatar isakpulkki avatar jojoensuu avatar juusosaavalainen avatar ruusukivi avatar sidorow avatar smannist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weatherbasedrecommender's Issues

Project Backlog

  • 0 sprint backlog set up
  • template for a user story
  • labels update
  • documentation and instructions for others

The user should be able to see attractiveness of POIs based on the current and future enviromental conditions

User can choose whether she wants to see the POI recommended based on current conditions or based on forecasts. User can choose suitable time with a time-slider covering 24 h.

Acceptance criteria

  • Forecast data is integrated to the front via API endpoint #72
  • Weather data shown in POI is related to time user has selected #70
  • Time-Slider is designed and implemented #71
  • Story meets the criteria in Definition of Done

Image

Attractiveness Score MVP

Acceptance Criteria / tasks

  • Model set-up done and reviewed with the whole team
  • Modelling based on temperature & humidity
  • Score available via API for the front-end
  • Data should be separated from the score (stored as json files?) -> own story?
  • Story meets the criteria in Definition of Done
Screenshot 2023-05-30 at 21 08 58

POI API integration

Story

Developer team has access to the POI information provided by Open Street Maps Overpass API by giving co-ordinates.

Acceptance Criteria

  • Access to POI information via API
  • POI's are seen on map
  • POI's have information about them
  • Meets the criteria in Definition of Done

The user should be able to see POIs along with their attractiveness scores given enviromental conditions

Story

User can see POIs in Kumpula and near-by-areas added with attractiveness score. Attractive POIs are highlighted.

Attractiveness score is calculated at this point based temperature and humidity.

Map is responsive based on users screen size.

In addition to Kumpula area, map shows a wider area (must include at least to weather stations).

The solution is done in a way that supports using a time-slider later on.

Acceptance criteria

  • Attractiveness score is available for POIs in Kumpula and near-by-areas #65
  • Only POIs relating to sports are visible #68
  • Map is responsive #69
  • Attractive POIs are highlighted #75
  • Epic meets the criteria in Definition of Done

Image

Sunset-Sunrise data

  • Sun -data integrated for poi -scoring

  • Sun -data shown in frontend application

CI/CD Setup

  • Discussed with the team what to include in the first set-up
  • Structure reviewed with the team
  • First version for CI/CD pipeline up-and-runnig
  • CI/CD documented

Setting up tests

  • Unit test environment set up exists
  • First test done and pass
  • Readme updated

Preparing for the next sprint

  • Sprint planning
  • Sprint review
  • Retro
  • Customer meeting scheduled and meeting room booked
  • Aleksi has invitation to the retro
  • Agenda done and sent to Denis
  • Roles clear: puheenjohtaja, demovastaava, kirjuri
  • Retro documented
  • Customer meeting documented

Forecast data available

Acceptance criteria

  • Forecast data is available for the frontend via backend API
  • Data can be fetched from the endpoint by a time given by the user
  • Forecast and current weather data are available for the frontend via same endpoint
  • Story meets the criteria in Definition of Done

See also: #71

Frontend calls backend URL correctly

Production frontend should call correct production backend URL for the weather data.
When developing locally it should use localhost instead.

Kumpula Campus Weather & POI-info page

Story

User can access via browser a page which contains:

  • Map
  • Current temperature
  • Air quality information
  • Point of interest information

Location is pre-set to Kumpula Campus.

Acceptance criteria

  • Page can be accessed by browser
  • Map is shown and set to Kumpula Campus
  • Temperature is shown
  • Air Quality information is shown
  • POI information is shown
  • Data shown on the map is fetched via APIs
  • Story meets the criteria in Definition of Done

Preparing for the Sprint 2

  • Customer meeting scheduled and meeting room booked
  • Roles clear: puheenjohtaja, demovastaava, kirjuri, scrum master
  • Agenda done and sent to Denis
  • Demo planned and rehearsed
  • Customer meeting documented
  • Sprint planning (booked & held)
  • Retro (booked & held)
  • Aleksi has invitation to the retro
  • Retro documented
  • Create a maintainance ticket for Ubuntu used in Pouta #79

Preparing for the next sprint planning

  • Everybody checks the API documentations
  • Everybody checks the benchmark applications

Goal for this task is to make sure we have a good understanding -> we can ask relevant questions and make good suggestions to Denis.

User story template

Story

Write the user story here

Acceptance criteria

Add acceptance criteria here

  • First criteria (you can link a task here)
  • Second criteria
  • Story meets the criteria in Definition of Done

Map is responsive

Acceptance criteria

  • Map is responsive based on screen size
  • Map data is fetched via API layer (if easy to do, otherwise -> separate story)
  • Helmet libarary for metadata recommended in React Leaflet for mobile usage
  • Story meets the criteria in Definition of Done

Open Street Map integration

Story

Developer team has access to the maps provided by Open Street Map APIs by giving co-ordinates (?).

Tasks

  • Access to the maps provided by Open Street Map APIs
  • Meets the criteria in Definition of Done

Pouta Setup

  • Pouta set up is done
  • Walking Skeleton in Pouta environment
  • Everybody in the team are able to deploy to Pouta

POI Weather info box

Acceptance criteria

  • Info box visuals & React Component
  • Has type of the POI
  • Humidity & temperature (either current or forecasted based on users choice)
  • Score
  • Wind and pressure if easily available, otherwise -> make a new story
  • Story meets the criteria in Definition of Done

Technology decisions for Sprint 0

  • What do we use in frontend
  • What do we use in backend
  • What do we use for ci/cd
  • What do we use for unit tests
  • Decision documented in comments

Branching practices

  • Reviewed and approved by everyone in the team
  • Decisions documented
  • Branch protection rules

Definition of Done

  • 1. Version of definition of done
  • Reviewed and approved by everyone in the team
  • Updated to README documentation

Time-Slider

Acceptance criteria

  • Responsive design for the slider
  • React Component implemented
  • Integrated to the backend APIs
  • Story meets the criteria in Definition of Done

Ilmatieteenlaitos API integration

Story

Developer team has access to the weather information provided by Ilmatieteenlaitos API.

Tasks

  • Weather information provided by the API
  • Meets the criteria in Definition of Done

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.