Skip to content

KUGODS-Wonder/Wonder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Wonder

Project to participate in 2023 google solution challenge

Top 100 finalist

image We made it!!

Member

Chanho Park Keo Kim Boyoung Kim SeoKyung Baek
- Lead
- Backend
- Frontend - Frontend - AI

Target UN-SDGs

Goal 3. Good Health and Well-Being

About our solution

The lack of physical activity among modern people has been a serious problem in many nations. The wonder app tries to fix this problem with our unique approach to walking exercises.

We added some gamification feature to help users enjoy walking in their daily lives. The user is encouraged to walk on daily basis, through various motivations and game-like mechanics we provide.

In addition, we connect local volunteering organizations with users so that they can participate in various volunteer activities that involves some 'walking' in the progress. For example, there are volunteer activities to take a walk with dogs at a dog shelter or lunch box delivery services for the elderly living alone. This way, walking is not just a daily experience, but also a way to help others and contribute to society.

App Demo

myprofile map voluntary_work

About Implementation

Backend

1. Tech Stack

  • Java 11
  • Spring, Spring boot
  • Spring Web MVC, Spring Security
  • Spring Data JPA, QueryDsl
  • MySQL
  • Docker, Docker-compose
  • GCP

2. Architecture

wonder server architecture

  • Spring server application is deployed through Docker and Docker Compose.
  • First, I created a Dockerfile to build an image of my application.
  • Then, I built an image of my application and pushed it to the DockerHub.
  • I also created a docker-compose.yml file with information about my spring application from the hub and Nginx and certbot. related issue
  • I used Nginx to implement the reverse proxy, and certbot for the https protocol.
  • Finally, I can start my app with Docker compose by running a command like "docker-compose up". This starts containers for the app.

3. Api Docs

Gitbook

4. ERD

image

Frontend

1. Tech Stack

  • Dart 2.19.2
  • Flutter 3.7.5
  • Flutter ScreenUtil 5.7.0
  • Get 4.6.5
  • Dio 5.0.3
  • Google Maps Flutter 2.2.5
  • Google Login 5.5.3

2. Architecture

app
    ├── common
    │   ├── util
    │   └── values
    │       └── styles
    ├── data
    │   ├── enums
    │   ├── errors
    │   ├── models
    │   └── providers
    ├── modules
    │   ├── event
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── home
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── login
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── map
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── map_detail
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── register
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── reservation_list
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── splash
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   ├── walk_track
    │   │   ├── bindings
    │   │   ├── controllers
    │   │   └── views
    │   └── widgets
    └── routes
  • We chose MVC pattern as an architecture.
    • Every feature is divided into modules, and each module has its own controller, view, and binding.
  • The data layer is divided into models and providers.
    • The models are used to store data, and the providers are used to communicate with the backend.
  • GetX is used as a state management and navigation tool.
    • In exchange for less flexible page transitions, GetX allowed us to quickly implement the app's core features.
  • We used the Google Maps Flutter plugin to implement the map feature. We also used the Google Login plugin to implement the login feature.

Wonder-AI

Reward system based on image classification

001 002

  • Users can find these stickers at the end of their walk.
  • When they take their phone cameras upon the sticker, our AI model recognizes it and uploads it on our app.
  • By using mobilnet_v2 model from tensorflow hub it is light, and can solve privacy issues of QR code.
  • Since the sticker they find is directly uploaded online, users can find fun accomplishing every walk.

Tech

  • tensorflow
  • mobilenet_v2 model from tensorflow hub

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •