Skip to content

gdsckoreahackathon2022/32_EasyPeasy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“Œ 32_EasyPeasy (Team AH-HA)

๐Ÿ– Introduction

Dark data is data that is stored but whose content or value is not verified.

According to Veritas, dark data produced about 5.8 million tons of carbon dioxide in 2020, the same amount as when cars traveled around the Earth 575,000 times.

Would you like to save the Earth by reducing dark data with just lifting a finger?

The AH-HA team proposes EasyPeasy, a service that can protect the environment by reducing dark data in our daily lives and make it a lifestyle.

Presentation Slides (Kor) / apk file download


๐Ÿ”จ Tech Stack

Frontend Backend (API)
Android Kotlin Nestjs GoogleCloud AWS Firebase Docker MySQL AmazonDynamoDB Sentry

๐Ÿ’š Android

๐Ÿ”–Main Functions

Sign up with Google Onboarding 1 Onboarding 2 Onboarding 3
Main It's all grown up! Character History Exchange Plants
Create my Character 1 Create my Character 2 Change my character
Settings Notification for deleting email

๐Ÿ’ป Android Tech Stack

Architecture MVVM
Jetpack Components LifeCycle (ViewModel, LiveData, LifeCycleObserver), DataBinding, Jetpack Navigation Component, viewPager2
library Standard Library, Glide, Material Design
Network OkHttp, Retrofit2, coroutine
Strategy Git Flow
Other Tool Notion, Slack

๐Ÿ—‚ Package

* ๐Ÿ“ฆexample
      โ””โ”€ahha_android
          โ”œโ”€๐Ÿ“‚data
	  โ”‚  โ”œโ”€๐Ÿ“‚api
	  โ”‚  โ”œโ”€๐Ÿ“‚model
	  โ”‚  โ”‚  โ”œโ”€๐Ÿ“‚request
	  โ”‚  โ”‚  โ””โ”€๐Ÿ“‚response
          โ”‚  โ”œโ”€๐Ÿ“‚response
          โ”‚  โ”œโ”€๐Ÿ“‚service
          โ”‚  โ”œโ”€๐Ÿ“‚type
          โ”‚  โ””โ”€๐Ÿ“‚vo
          โ”œโ”€๐Ÿ“‚ui
          โ”‚  โ”œโ”€๐Ÿ“‚main
          โ”‚  โ”‚  โ””โ”€๐Ÿ“‚adapter
	  โ”‚  โ”œโ”€๐Ÿ“‚setting
          โ”‚  โ”œโ”€๐Ÿ“‚sign
          โ”‚  โ”‚  โ””โ”€๐Ÿ“‚adapter
          โ”‚  โ””โ”€๐Ÿ“‚viewModel
          โ””โ”€๐Ÿ“‚util



๐Ÿ’™ Backend

โœจ The technology used

  • Google OAuth2.0
    Used to obtain user authentication information.
  • Google Gmail API
    Used to get real-time mail count of users.
  • Google Cloud Platform PUB/SUB
    Whenever there is an event in the user's mailbox, it is used to collect data by communicating asynchronously.
  • Firebase Cloud Messaging
    Used to send push notifications to users.
  • DynamoDB
    Used to store users who receive push notifications. Compared to using RDS alone, we got a speedup of 39%. (Based on 50000 dummy data)
  • Sentry / Slack
    Used for real-time bug tracking.

๐Ÿ› ๏ธ Dev Server

http://3.35.131.195/api/v1

๐Ÿ“– API Documentation

http://3.35.131.195/api/v1/docs/

๐ŸŒฑ Getting Started

node: 14.16.0
npm: 6.14.11

1. Cloning

$ git clone https://github.com/ah-ha-dev/ah-ha-api-server.git
$ cd ah-ha-api-server
$ npm install

2. Setting dotenv at Root Directory

JWT_SECRET=<YOUR_JWT_SECRET>
GOOGLE_CLIENT_ID=<YOUR_GOOGLE_CLIENT_ID>
GOOGLE_CLIENT_SECRET=<YOUR_GOOGLE_CLIENT_SECRET>
GOOGLE_REDIRECT_URI=<YOUR_GOOGLE_REDIRECT_URI>
FIREBASE_PROJECT_ID=<YOUR_FIREBASE_PROJECT_ID>
FIREBASE_PRIVATE_KEY=<YOUR_FIREBASE_PRIVATE_KEY>
FIREBASE_CLIENT_EMAIL=<YOUR_FIREBASE_CLIENT_EMAIL>
GOOGLE_CREDENTIALS_TYPE=<YOUR_GOOGLE_CREDENTIALS_TYPE>
GOOGLE_CREDENTIALS_PRIVATE_KEY=<YOUR_GOOGLE_CREDENTIALS_PRIVATE_KEY>
GOOGLE_CREDENTIALS_CLIENT_EMAIL=<YOUR_GOOGLE_CREDENTIALS_CLIENT_EMAIL>
GOOGLE_CREDENTIALS_CLIEND_ID=<YOUR_GOOGLE_CREDENTIALS_CLIEND_ID>
GOOGLE_PROJECT_ID=<YOUR_GOOGLE_PROJECT_ID>
GOOGLE_PUBSUB_TOPIC_NAME=<YOUR_GOOGLE_PUBSUB_TOPIC_NAME>
GOOGLE_PUBSUB_SUBSCRIPTION_NAME=<YOUR_GOOGLE_PUBSUB_SUBSCRIPTION_NAME>
AWS_ACCESS_ID=<YOUR_AWS_ACCESS_ID>
AWS_SECRET_ACCESS_KEY=<YOUR_AWS_SECRET_ACCESS_KEY>
AWS_REGION=<YOUR_AWS_REGION>
SENTRY_DSN=<YOUR_SENTRY_DSN>
SLACK_WEBHOOK=<YOUR_SLACK_WEBHOOK>

3. Run the MySQL with Docker

$ docker-compose -f "docker-compose.yml" up -d --build                                   

4. Start Local Server

$ npm run start                         

๐ŸŒธ Architecture

Server Architecture

image

CICD Architecture

image

MySQL ERD

image

๐ŸŒˆ Contributors

Sohee Lee Heewon Kang Hyuna Kim Sunwoo Ho
@heehee.dsgn @ymcho24 @akimcse @hocaron
Designer Android Android Backend

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published