This platform is a marketplace for buying and selling concert and event tickets, offering various categories to meet diverse needs. Registered users can act as buyers, easily finding and paying for tickets online. The website provides accurate, up-to-date event information for an optimal user experience. Built with Go using the Echo framework and Clean Architecture, the application ensures maintainability and scalability, utilizing a PostgreSQL database for robust data storage, resulting in efficient and reliable endpoints.
Depublic build by Go Go 1.13+ to run.
- Clone Repository By use terminal/cmd
git clone https://github.com/Kevinmajesta/depublic-backend.git
- Open Repository By use terminal/cmd
cd depublic-backend
- Check the .env file and configure with your device
Example file .env
ENV="yourEnv"
PORT="your using port ex("8080")"
POSTGRES_HOST= "your psql host ex("localhost")"
POSTGRES_PORT="your psql port ex("5432")"
POSTGRES_USER="depublic"
POSTGRES_PASSWORD="depublic"
POSTGRES_DATABASE="depublic"
REDIS_HOST="localhost"
REDIS_PORT="6379"
JWT_SECRET_KEY="erwhdhsajdahjkdhqwiuou"
-
Enable the PostgreSQL database Option you can use :
-
Run the command to create the database and migrate it. Make sure you have install migrate cli. If you dont, install first by
If you MAC user 🍏
- First if you dont have Home Brew Open terminal and copy code below :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Then install migrate cli
brew install golang-migrate
If you windows user🪟
- Open PowerShell. You can do this by searching for PowerShell in the start menu.
- Inside PowerShell, type the code below
iwr -useb get.scoop.sh | iex
Then Install use scoop
scoop install migrate
After all, migrate it by
migrate -database "postgres://depublic:depublic@localhost:5432/depublic?sslmode=disable" -path db/migrations up
docker-compose up -d
- Run the application
go mod tidy
go run cmd/app/main.go
WHAT WE BUILD? Project Theme : Ticketing App
Description Platform for a marketplace for buying and selling concert and event tickets, offering various categories to meet diverse needs.With provides accurate, up-to-date event information for an optimal user experience.
- Full controll by Admin
- User Registration.
- Implementation of In-App Notification (in-app notification, not push notification).
- User Profile.
- Realtime Payment by Midtrans
- Transaction History.
- Search, Sort, and Filter.
Depublic uses a number of open source projects to work properly :
- Golang - High-performance language for scalable apps.
- Echo Framework - Web framework for Go.
- PostgreSQL - Reliable open-source database.
- Midtrans - Secure online payment gateway.
- Docker - Container platform for consistent deployment.
- Using Model-View-Controller (MVC) basic architecture with two layers (backend and frontend).
- Using project layout by (https://github.com/golang-standards/project-layout)
- Implementation of search, filter, and sorting features.
- Admin
- User
This project app develope by 5 people
Name | Github |
---|---|
Kevin | https://github.com/Kevinmajesta |
Surya | https://github.com/suryaapandi28 |
Anom | https://github.com/AnomID |
Haqiqi | https://github.com/haqiqi157 |
Vivi | https://github.com/cutesoo |
By using github for development for staging and production. Git workflow with two branch branches: "main" for production and "dev" for testing and build.
- URL Access :
http://ticketing.smartlms.my.id:8080/
- Example URL Access API - Public :
Access the url configuration
{Host_public}:{Ports}/app/api/v1/{Access_features}
To
http://ticketing.smartlms.my.id:8080/app/api/v1/login/admin
Documentation for API can be get by :
output\depublic-backend/depublic_project.postman_collection.json
or
https://github.com/Kevinmajesta/depublic-backend/blob/main/DB%20%26%20JSON%20API/depublic_project_fix.postman_collection.json
or
https://documenter.getpostman.com/view/24409024/2sA3XJjjNi
Detail for Flow Application Detail for Table Relation
Copyright (c) 2024 Group 4 Golang with MIKTI MSIB Partner
Prohibited to sell or distribute this software for commercial purposes without written permission from us. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to use, copy, modify, and distribute the Software, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.