Skip to content

RECYTHNG/recything-be

Repository files navigation

Recything - Backend

Recything is a mobile platform designed to facilitate recycling education, littering reporting, and gamified achievements for users. The app allows end users to find recycling information, report improper trash disposal, and earn rewards for completing tasks, while a web dashboard enables super admins to manage accounts and access all data.

dashboard admin ( Recything - Web )

Features

User

  • Register / Login account
  • Edit user detail
  • Homepage mobile
  • Reporting Littering / Rubbish
  • Customer service with an AI
  • Article content for an education
  • Video content for an education
  • Doing task challenge to earn rewards
  • About our team
  • Achievements detail (leaderboard)

Superadmin / Admin

  • Login Superadmin / Admin
  • Dashboard admin
  • Manage Admins data (only superadmin)
  • Manage Users data
  • Manage Reports (approve/reject report from user)
  • Manage Articles (add/update/delete)
  • Manage Videos (add/update/delete)
  • Manage Achievement (update target point for an each badge)
  • Manage Custom Data for dataset AI
  • Manage Tasks (approving/rejecting task user)

TechStacks

API Documentation

( Swagger API ) Swagger

( Postman API ) Postman

ERD

( ERD - draw.io ) ERD

Setup

Manually

  1. Rename config.example.yaml to config.yaml
  2. Fill all the field in config.yaml with your configuration
  3. Make sure you have GO version 1.22+ and MySQL to run this project
  4. Create new database in MySQL named recything_db
  5. Run the program
    go run cmd/api/main.go

Docker

  1. Build an image
    docker build -t sawalrever23/recything-be:latest .
  2. Create new network
    docker network create api-network
  3. Pull MySQL image (if you don't have one)
    docker pull mysql
  4. Pull Golang image (if you don't have one)
    docker pull golang
  5. Run MySQL on port 3306
    docker run -itd --name mysql-service \
     --network api-network \
     -p 3306:3306 \
     -e MYSQL_ROOT_PASSWORD={your_password} \
     -e MYSQL_DATABASE=recything_db \
     -v /tmp/mysql-volume:/var/lib/mysql \
     mysql:latest
  6. Run our build
    docker run -itd --name recything-be \
    -p 8080:8080 \
    --network api-network \
    --restart on-failure \
    sawalrever23/recything-be:latest

Docker Compose

  • Running our compose

    docker compose up -d
  • Stopping compose

    docker compose down

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages