• Stars
    star
    164
  • Rank 230,032 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created over 1 year ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A job opportunities API built using Golang. The API uses Go-Gin as a router, SQLite as a database, and GoORM for database communication. It also includes Swagger for documentation and testing, and a well-organized package structure.

GoJob Opportunities API

GoJob Header

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.


Features

  • 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

Live Version

You can check the documentation and perform tests to the API by visiting the live version hosted at gopportunities.excalidevs.com.

Video Tutorial

You can follow the step-by-step instructions on how to create this project by watching the video tutorial (in Portuguese).

Installation

To use this project, you need to follow these steps:

  1. Clone the repository: git clone https://github.com/username/repo-name.git
  2. Install the dependencies: go mod download
  3. Build the application: go build
  4. Run the application: ./main

Makefile Commands

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 named gopportunities.
  • make test: Run tests for all packages in the project.
  • make docs: Generate the API documentation using Swag.
  • make clean: Remove the gopportunities executable and delete the ./docs directory.

To use these commands, simply type make followed by the desired command in your terminal. For example:

make run

Docker and Docker Compose

This project includes a Dockerfile and docker-compose.yml file for easy containerization and deployment. Here are the most common Docker and Docker Compose commands you may want to use:

  • docker build -t your-image-name .: Build a Docker image for the project. Replace your-image-name with a name for your image.
  • docker run -p 8080:8080 -e PORT=8080 your-image-name: Run a container based on the built image. Replace your-image-name with the name you used when building the image. You can change the port number if necessary.

If you want to use Docker Compose, follow these commands:

  • docker compose build: Build the services defined in the docker-compose.yml file.
  • docker compose up: Run the services defined in the docker-compose.yml file.

To stop and remove containers, networks, and volumes defined in the docker-compose.yml file, run:

docker-compose down

For more information on Docker and Docker Compose, refer to the official documentation:

Used Tools

This 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

Usage

After the API is running, you can use the Swagger UI to interact with the endpoints for searching, creating, editing, and deleting job opportunities. The API can be accessed at http://localhost:$PORT/swagger/index.html.

Default $PORT if not provided=8080.

Contributing

To contribute to this project, please follow these guidelines:

  1. Fork the repository
  2. Create a new branch: git checkout -b feature/your-feature-name
  3. Make your changes and commit them using Conventional Commits
  4. Push to the branch: git push origin feature/your-feature-name
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Credits

This project was created by arthur404dev.

More Repositories

1

repo-wars

An engaging web-based game built using React, Vite, TypeScript, and CSS3, leveraging the public GitHub API to fetch repository data. Players are presented with two randomly selected repositories and must decide which one has more stars. The game serves as a fun and interactive way to explore GitHub repositories and learn about their popularity.
TypeScript
9
star
2

learn-go

8
star
3

the-great-dreamer-theme

VSCode dark theme inspired by lovecraft for the big dreamers out there!
8
star
4

ebac-landing-page

JavaScript
4
star
5

personal-website-v1

Personal Website created using Next.JS
TypeScript
4
star
6

stream-toolkit-web

JavaScript
4
star
7

dotfiles

Lua
4
star
8

gobot-discord

Go
3
star
9

heimdall

TypeScript
3
star
10

Job-Scheduler

NodeJS + Redis Job Scheduler Boilerplate with easy scalability and parallel running
JavaScript
3
star
11

IT-Next-Level---Jobs

Final Project of my course on basic web development for HR Individuals
HTML
2
star
12

stream-toolkit-api

Go
2
star
13

home-lab

Makefile
2
star
14

ZooApi

RESTful API written in GOlang to be used as a boilerplate for GOlang projects.
Go
2
star
15

portfolio-forge

Go
2
star
16

st-grpc

Streamer Toolkit gRPC is a high-performance, universal gRPC server and client service for real-time messaging between various provider services like YouTube and Twitch, and a central hub. This service is designed for easy integration with Streamer Toolkit's frontend using WebSocket communication.
Go
2
star
17

cv-manager

Go
1
star
18

go-concurrency-parallelism

Go
1
star
19

Resumee-Vader

Resumée of one of the biggest villains
HTML
1
star
20

ColorGame

RGB Color Game Exercise
JavaScript
1
star
21

GeniusGame

My take on a Genius Game
JavaScript
1
star
22

tornado-python

Python
1
star
23

Chatter

A Chat app constructed using the MERN Stack
JavaScript
1
star
24

vader-cv

Resumée of one of the biggest villains from all time.
1
star
25

Vulpi-Career-Page

This is the final version of the Vulpi IT Recruiter Career Page given in my course of basic HTML, CSS and JS.
CSS
1
star
26

ToDoListApp

To-Do Vanilla CSS and JS App Exercise
CSS
1
star
27

Insurance-Assistant

Python
1
star
28

gitfiti-artwork

1
star
29

config-terminal

Shell
1
star
30

stream-toolkit-404

An open source project for streamers with tools to help engaging with multiple platforms, chats and overlays
Makefile
1
star
31

horse-meter

TypeScript
1
star
32

leetcode-01-two-sum

Solutions in several common languages for the leetcode problem 01: Two Sum
JavaScript
1
star
33

win-config

AutoHotkey
1
star
34

arthur404dev

My Profile Page!
1
star