CONTRIBUTING.md (2245, 2023-11-13)
LICENSE (1071, 2023-11-13)
back-end/ (0, 2023-11-13)
back-end/.dockerignore (145, 2023-11-13)
back-end/.editorconfig (262, 2023-11-13)
back-end/.env.test (493, 2023-11-13)
back-end/Dockerfile (679, 2023-11-13)
back-end/LICENSE (11373, 2023-11-13)
back-end/Makefile (1083, 2023-11-13)
back-end/app/ (0, 2023-11-13)
back-end/app/BUSINESS_LOGIC.md (399, 2023-11-13)
back-end/app/controllers/ (0, 2023-11-13)
back-end/app/controllers/auth_controller.go (1104, 2023-11-13)
back-end/app/controllers/cost_explorer_controller.go (499, 2023-11-13)
back-end/app/models/ (0, 2023-11-13)
back-end/app/models/auth_model.go (260, 2023-11-13)
back-end/app/models/aws_model.go (608, 2023-11-13)
back-end/app/models/user_model.go (424, 2023-11-13)
back-end/app/queries/ (0, 2023-11-13)
back-end/app/queries/user_query.go (17, 2023-11-13)
back-end/app/services/ (0, 2023-11-13)
back-end/app/services/cost_explorer_service.go (1262, 2023-11-13)
back-end/app/services/s3_service.go (818, 2023-11-13)
... ...
[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![Pull Request][pr-shield]][pr-url] [![MIT License][license-shield]][license-url]
Table of Contents
-
About The Project
-
Getting Started
- Architecture
- REST API
- Contributing
- License
- Contact
## :mag: About The Project
AWS Billing Dashboard . .
### Login & SignUp Page
![ui1](https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/./images/login_signUp.png)
### Key Settings & Logout Widget
![ui2](https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/./images/key_logout.png)
### Main DashBoard Page ( + Region Selector Widget )
![ui3](https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/./images/main.png)
### Alert Message Page ( + Alert Settings Widget )
![ui4](https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/./images/alert.png)
(back to top)
### :card_file_box: Built With
#### :bulb: Language
[![Dart][Dart]][Dart-url] [![Flutter][Flutter]][Flutter-url]
#### :bulb: Infrastructure
[![aws][aws]][aws-url]
#### :bulb: Environment (CI/CD, Package tools...)
[![Github-actions][Github-actions]][Github-actions-url]
(back to top)
## :rocket: Getting Started
### :zap: Prerequisites
Download and install packages and associated dependencies via `flutter pub get`
* dart flutter
```sh
flutter pub get
```
(back to top)
## :globe_with_meridians: Architecture
### :triangular_flag_on_post: Overall Service Configuration Architecture
![service](https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/./images/service.png)
### :triangular_flag_on_post: Development Environment Architecture
![env](https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/./images/deploy.png)
(back to top)
## :memo: REST API
### Get `/api/v1/aws-resource`
#### Request
- Description - aws resource cost list
```bash
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/aws-resource?email="test@gmail.com"®ion="us-east-1"&day=7
```
#### Response
- Description - aws resource cost list
```json
{
"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
```bash
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/alert-messages?email="test@gmail.com"
```
#### Response
- Description - alert message list
```json
{
"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
```bash
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
```json
{
"statusCode": 200,
"data": {
"message": "key store success"
}
}
```
### Post `/api/v1/alert-setting`
#### Request
- Description - cost alert
```bash
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
```json
{
"statusCode": 200,
"data": {
"message": "alert setting success"
}
}
```
### Post `/api/v1/login`
#### Request
- Description - login
```bash
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/login
{
email: "test@gmail.com",
password: "test1234!!",
}
```
#### Response
- Description - login
```json
{
"statusCode": 200,
"data": {
"message": "login success"
}
}
```
### Post `/api/v1/sign-up`
#### Request
- Description - sign up
```bash
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/sign-up
{
email: "test@gmail.com",
password: "test1234!!",
}
```
#### Response
- Description - sign up
```json
{
"statusCode": 200,
"data": {
"message": "sign up success"
}
}
```
### Post `/api/v1/logout`
#### Request
- Description - logout
```bash
curl -i -H 'Accept: application/json' http://localhost:8000/api/v1/logout
{
email: "test@gmail.com",
}
```
#### Response
- Description - logout
```json
{
"statusCode": 200,
"data": {
"message": "logout success"
}
}
```
(back to top)
## :fire: 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)
## :closed_lock_with_key: License
Please refer to `LICENSE.txt` for LICENSE.
(back to top)
## :speech_balloon: Contact
(back to top)
[contributors-shield]: https://img.shields.io/github/contributors/Eeap/Mobile-Billing-Dashboard.svg?style=flat
[contributors-url]: https://github.com/Eeap/Mobile-Billing-Dashboard/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/Eeap/Mobile-Billing-Dashboard.svg?style=flat
[forks-url]: https://github.com/Eeap/Mobile-Billing-Dashboard/network/members
[stars-shield]: https://img.shields.io/github/stars/Eeap/Mobile-Billing-Dashboard.svg?style=flat
[stars-url]: https://github.com/Eeap/Mobile-Billing-Dashboard/stargazers
[issues-shield]: https://img.shields.io/github/issues/Eeap/Mobile-Billing-Dashboard.svg?style=flat
[issues-url]: https://github.com/Eeap/Mobile-Billing-Dashboard/issues
[pr-url]: https://github.com/Eeap/Mobile-Billing-Dashboard/pulls
[pr-shield]: https://img.shields.io/github/issues-pr/Eeap/Mobile-Billing-Dashboard.svg?style=flat
[license-shield]: https://img.shields.io/github/license/Eeap/Mobile-Billing-Dashboard.svg?style=flat
[license-url]: https://github.com/Eeap/Mobile-Billing-Dashboard/blob/master/LICENSE.txt
[aws]: https://img.shields.io/badge/AmazonAWS-232F3E?style=flat&logo=AmazonAWS&logoColor=white
[aws-url]: https://aws.amazon.com/
[Github-actions]: https://img.shields.io/badge/GitHub_Actions-2088FF?style=flat&logo=github-actions&logoColor=white
[Github-actions-url]: https://github.com/features/actions
[Dart]: https://img.shields.io/badge/Dart-0175C2?style=flat&logo=Dart&logoColor=white
[Dart-url]: https://dart.dev/
[Flutter]: https://img.shields.io/badge/Flutter-02569B?style=flat&logo=Flutter&logoColor=white
[Flutter-url]: https://flutter.dev/