This is the backend API for the Certify NFT platform. It handles event management, user/vendor registration, authentication, and certificate issuance logic. The API is built with Go and containerized with Docker.
Follow these instructions to get the project up and running on your local machine.
-
Clone the repository:
git clone <your-repository-url> cd API-Certify-NFT-BE
-
Create your environment file: Copy the example environment file
.env.exampleto a new file named.env.cp .env.example .env
Then, open
.envand fill in the required values, especially your database password. -
Run with Docker Compose: This command will build the Go application image and start the service.
docker-compose up --build -d
-
The API is now running! You can access it at
http://localhost:4002.
For detailed information about all available endpoints, request/response formats, and examples, please see the API Documentation.
Here are the technologies, tools, and frameworks used in this project:
- Language: Go (Golang)
- Web Framework: Echo (v4) - A high-performance, minimalist Go web framework.
- Database: PostgreSQL - A powerful, open-source object-relational database system.
- Containerization:
- Docker - For creating a consistent and isolated environment for the application.
- Docker Compose - For defining and running the multi-container Docker application.
- Go Packages:
github.com/lib/pq: A pure Go Postgres driver for thedatabase/sqlpackage.github.com/joho/godotenv: A library to load environment variables from a.envfile.
.
├── .git/
├── .github/ # GitHub Actions workflows
├── .gitignore
├── apiDocs.md # Detailed API documentation
├── database_structure.md
├── docker-compose.yml # Defines the services, networks, and volumes
├── Dockerfile # Defines the steps to build the Go application image
├── go.mod # Manages dependencies for the Go project
├── go.sum
├── main.go # Main application entry point, routing, and handlers
├── README.md # This file
└── schema.sql # Database schema definitions