Skip to content

aws cost explorer를 이용한 모바일 전용 billing dashboard

License

Notifications You must be signed in to change notification settings

Eeap/Mobile-Billing-Dashboard

Repository files navigation

Contributors Forks Stargazers Issues Pull Request MIT License


Table of Contents
  1. About The Project
  2. Getting Started
  3. Architecture
  4. REST API
  5. Contributing
  6. License
  7. Contact

🔍 About The Project

해당 프로젝트는 웹으로 존재하는 AWS Billing Dashboard를 모바일으로도 이용 요금 현황을 파악할 수 있게 만들어진 프로젝트입니다. 리소스 별로 비용 차트를 확인할 수 있고 타겟 비용에 대한 알람을 설정할 수 있습니다.

Login & SignUp Page

ui1

Key Settings & Logout Widget

ui2

Main DashBoard Page ( + Region Selector Widget )

ui3

Alert Message Page ( + Alert Settings Widget )

ui4

(back to top)

🗃️ Built With

💡 Language

Dart Flutter

💡 Infrastructure

aws

💡 Environment (CI/CD, Package tools...)

Github-actions

(back to top)

🚀 Getting Started

⚡ Prerequisites

Download and install packages and associated dependencies via flutter pub get

  • dart flutter
    flutter pub get

(back to top)

🌐 Architecture

🚩 Overall Service Configuration Architecture

service

🚩 Development Environment Architecture

env

(back to top)

📝 REST API

❗️Get /api/v1/aws-resource

Request

  • Description - aws resource cost list 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/aws-resource?email="test@gmail.com"&region="us-east-1"&day=7

Response

  • Description - aws resource cost list 반환
{
  "statusCode": 200,
  "data": {
    "resources": [
      {
          "key":       "Amazon Simple Storage Service",
          "amount":    "2.8",
          "timeEnd":   "2023-11-01",
          "timeStart": "2023-11-02",
      },
    ],
    "totalResults": 1
  }
}

❗️Get /api/v1/alert-messages

Request

  • Description - alert message list 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/alert-messages?email="test@gmail.com"

Response

  • Description - alert message list 반환
{
  "statusCode": 200,
  "data": {
    "messages": [
        {
            "time":    "2023-11-08 20:55:00",
            "message": "리소스 총 사용 요금이 70% 초과하였습니다.",
        },
    ],
    "totalResults": 1
  }
}

❗️Post /api/v1/user-key

Request

  • Description - aws iam key 저장 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/user-key

{
    email: "test@gmail.com",
    accessKey: "key value",
    secretKey: "key value"
}

Response

  • Description - key 저장 완료 메시지
{
  "statusCode": 200,
  "data": {
    "message": "key store success"
  }
}

❗️Post /api/v1/alert-setting

Request

  • Description - cost alert 설정 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/alert-setting

{
    email: "test@gmail.com",
    timeEnd: "2023-11-24 16:00:00",
    targetCost: 100
}

Response

  • Description - alert 설정 성공 메시지
{
  "statusCode": 200,
  "data": {
    "message": "alert setting success"
  }
}

❗️Post /api/v1/login

Request

  • Description - login 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/login

{
    email: "test@gmail.com",
    password: "test1234!!",
}

Response

  • Description - login 성공 메시지
{
  "statusCode": 200,
  "data": {
    "message": "login success"
  }
}

❗️Post /api/v1/sign-up

Request

  • Description - sign up 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/sign-up

{
    email: "test@gmail.com",
    password: "test1234!!",
}

Response

  • Description - sign up 성공 메시지
{
  "statusCode": 200,
  "data": {
    "message": "sign up success"
  }
}

❗️Post /api/v1/logout

Request

  • Description - logout 요청
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/logout

{
    email: "test@gmail.com",
}

Response

  • Description - logout 성공 메시지
{
  "statusCode": 200,
  "data": {
    "message": "logout success"
  }
}

(back to top)

🔥 Contributing

Please refer to CONTRIBUTING.md for Contribution.

For issues, new functions and requests to modify please follow the following procedure. 🥰

  1. Fork the Project
  2. Create a Issue when you have new feature or bug, just not Typo fix
  3. Create your Feature Branch from dev Branch (git checkout -b feature/Newfeature)
  4. Commit your Changes (git commit -m 'feat: add new feature')
  5. Push to the Branch (git push origin feature/Newfeature)
  6. Open a Pull Request to dev branch with Issues

(back to top)

🔐 License

Please refer to LICENSE.txt for LICENSE.

(back to top)

💬 Contact


Sumin Kim

(back to top)

About

aws cost explorer를 이용한 모바일 전용 billing dashboard

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages