An open API service indexing awesome lists of open source software.

https://github.com/alterra-greeve/backend-capstone

Capstone Project SIB Batch 6 x Alterra Academy
https://github.com/alterra-greeve/backend-capstone

cloudrun golang gorm midtrans websocket

Last synced: 10 months ago
JSON representation

Capstone Project SIB Batch 6 x Alterra Academy

Awesome Lists containing this project

README

          




Greeve

Final Project Capstone Alterra Academy

Explore the docs Open API



# About Project


Greeve is an innovative app that aims to increase user awareness and participation in environmental conservation and make it easier to purchase eco-friendly goods and equipment. The app not only offers a platform to purchase environmental goods and equipment, but also provides information on the impact of users' activities on the environment as well as how to measure and reduce that impact. The following is greeve documentation from the backend using golang programming language.

### Features available in this project:
| Feature | Method | Users | Admin |
| ----------------- | ------------------- | ----------------------- | ---------------------------------------- |
| USERS FEATURE |
| Register | POST | Yes | No |
| Login | POST | Yes | Yes |
| Reset Password | POST | Yes | No |
| Get All Users | GET | No | Yes |
| Edit Self Profile | PUT | Yes | Yes |
| Manage User | PUT | No | Yes |
| Delete User | DELETE | Yes | Yes |
| Product FEATURE |
| Create Data Product | POST | No | Yes |
| Edit Data Product | PUT | No | Yes |
| Create Data Product | POST | No | Yes |
| Get Product | GET | Yes | Yes |
| Get Product by ID | GET | Yes | Yes |
| View Item from Shooping cart | GET | Yes | No |
| Add Item to Shooping cart | POST | Yes | No |
| Edit Item From Shooping cart | PUT | Yes | No |
| Delete Item From Shooping cart | DELETE | Yes | No |
| Transaction FEATURE |
| Get All Transaction Data For User | GET | Yes | Yes |
| Get Transaction Data For User by ID| GET | Yes | Yes |
| Create Transaction | POST | Yes | No |
| Cancel Transaction | PUT | Yes | No |
| Payment For Transaction | POST | Yes | No |
| Challenge Feature |
| View All Challenge | GET | Yes | Yes |
| Get Challenge by ID | GET | Yes | Yes |
| Get Challenge that has been joined | GET | Yes | No |
| Parcitipate Challenge | POST | Yes | No |
| Confirmation Join Challenge | POST | Yes | No |
| Viev Monthly Leaderboard | GET | Yes | Yes |
| Forum Feature |
| Get All Forum | GET | Yes | Yes |
| Get Forum by Id | GET | Yes | Yes |
| Create Forum | POST | Yes | No |
| Edit Forum | PUT | Yes | No |
| Delete Forum | DELETE | Yes | Yes |
| Create Message | POST | Yes | No |
| Edit Message | POST | Yes | No |
| Get Message by Id | GET | No | Yes |
| Delete Message | DELETE | Yes | Yes |
| Impact Category Feature |
| Get All Impact Category | GET | No | Yes |
| Create Impact Category | POST | No | Yes |
| Edit Impact Category | PUT | No | Yes |
| Delete Impact Category | DELETE | No | Yes |
| Voucher Feature |
| Get All Voucher | GET | Yes | Yes |
| Create Voucher | POST | No | Yes |
| Edit Voucher | PUT | No | Yes |
| Delete Voucher | DELETE | No | Yes |
| Dashboard Feature |
| Get Dashboard | GET | No | Yes |
| Get Orders Product | GET | No | Yes |
| Get Orders Challenge | GET | No | Yes |

# Built With
- Golang
- Echo
- Gorm
- MySql
# Getting Started
## How to Use
Clone the project

```bash
git clone https://github.com/Alterra-Greeve/backend-capstone.git
```
Install required dependencies
```bash
go mod tidy
```
Setting Environmental Variable on `.env` file
```bash
DB_HOST=
DB_PORT=
DB_USER=
DB_PASS=
DB_NAME=

SMTP_USER=
SMTP_PASS=
SMTP_HOST=
SMTP_PORT=

JWT_SECRET=

PROJECT_ID=
BUCKET_NAME=
GOOGLE_APPLICATION_CREDENTIALS=

MIDTRANS_CLIENT_KEY=
MIDTRANS_SERVER_KEY=
```
Run `main.go` file
```bash
go run main.go
```
Run the endpoints as in the swagger documentation

# System Diagram and Architecture
## ERD


ERD_Capstone drawio

## HLA
![HLA Capstone (3)](https://github.com/Alterra-Greeve/backend-capstone/assets/133726246/e6b4627a-7bfc-40c9-bd09-7b33ee583a22)

# Contact
Link Project:


GitHub Badge



API Documentation:


Swagger Badge

## Contributor
**Nur Faid Praseto**


[![Nur Faid Prasetyo - LinkedIn](https://img.shields.io/badge/Nur_Faid_Prasetyo-blue?logo=linkedin)](https://www.linkedin.com/in/kzquandary)
[![Nur Faid Prasetyo - GitHub](https://img.shields.io/badge/Nur_Faid_Prasetyo-black?logo=github)](https://github.com/kzquandary)

**Chandra Wahyu Rafialdi**


[![Chandra Wahyu Rafialdi - LinkedIn](https://img.shields.io/badge/Chandra_Wahyu_Rafialdi-blue?logo=linkedin)](https://www.linkedin.com/in/chandra-wahyu-r-8875b3297/)
[![Chandra Wahyu Rafialdi - GitHub](https://img.shields.io/badge/Chandra_Wahyu_Rafialdi-black?logo=github)](https://github.com/ChandraWahyuR)