This project is a modern job opportunities API built using Golang, currently one of the highest paying programming languages. The API is powered by Go-Gin as a router, GoORM for database communication, SQLite as the database, and Swagger for API documentation and testing. The project follows a modern package structure to keep the codebase organized and maintainable.
- Introduction to Golang and building modern APIs
- Development environment setup for creating the API
- Using Go-Gin as a router for route management
- Implementing SQLite as the database for the API
- Using GoORM for communication with the database
- Integrating Swagger for API documentation and testing
- Creating a modern package structure for organizing the project
- Implementing a complete job opportunities API with endpoints for searching, creating, editing, and deleting opportunities
- Implementing automated tests to ensure API quality
To use this project, you need to follow these steps:
- Clone the repository:
git clone https://github.com/username/repo-name.git - Install the dependencies:
go mod download - Build the application:
go build - Run the application:
./main
The project includes a Makefile to help you manage common tasks more easily. Here's a list of the available commands and a brief description of what they do:
make run: Run the application without generating API documentation.make run-with-docs: Generate the API documentation using Swag, then run the application.make build: Build the application and create an executable file namedgopportunities.make test: Run tests for all packages in the project.make docs: Generate the API documentation using Swag.make clean: Remove thegopportunitiesexecutable and delete the./docsdirectory.
To use these commands, simply type make followed by the desired command in your terminal. For example:
make runThis project uses the following tools:
- Golang for backend development
- Go-Gin for route management
- GoORM for database communication
- SQLite as the database
- Swagger for API documentation and testing
This project was developed following the tips from the live stream by arthur404dev.