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.
- 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)
- 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)
- Echo (Web Framework Go)
- Cloudinary (Cloud storage free)
- Viper (Configuration)
- Validator (Type validation)
- JWT (Middleware)
- OpenAI (Chat Bot)
- MySQL (SQL)
- GORM (ORM)
- AWS EC2 (Deployment)
- Rename config.example.yaml to config.yaml
- Fill all the field in config.yaml with your configuration
- Make sure you have GO version 1.22+ and MySQL to run this project
- Create new database in MySQL named recything_db
- Run the program
go run cmd/api/main.go
- Build an image
docker build -t sawalrever23/recything-be:latest . - Create new network
docker network create api-network
- Pull MySQL image (if you don't have one)
docker pull mysql
- Pull Golang image (if you don't have one)
docker pull golang
- 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 - Run our build
docker run -itd --name recything-be \ -p 8080:8080 \ --network api-network \ --restart on-failure \ sawalrever23/recything-be:latest
-
Running our compose
docker compose up -d
-
Stopping compose
docker compose down



