Categorygithub.com/DaffaJatmiko/go-rest-project-manager
module
0.0.0-20240517030116-7081b9ef003b
Repository: https://github.com/daffajatmiko/go-rest-project-manager.git
Documentation: pkg.go.dev

# README

Go Rest Project Manager

Brief Description

Go Rest Project Manager is a REST API-based project manager application developed using the Go programming language. This application allows users to easily manage their projects and tasks, such as creating, reading, updating, and deleting (CRUD) project and task data.

Technology Stack

  • Programming Language: Go (Golang)
  • Database: MySQL
  • API Framework: net/http (Go standard library)
  • Containerization: Docker
  • Dependency Management: Go Modules

Features

  • User Management: User registration and login.
  • Project Management: CRUD projects.
  • Task Management: CRUD tasks.
  • Authentication: JWT-based authentication for API security.
  • Input Validation: Validation of user input data.
  • API Documentation: Endpoint documentation using Postman Collection.
  • Testing: Includes comprehensive testing to ensure reliability and correctness of the API endpoints.

How to Run the Program

Prerequisites

Ensure you have installed:

Steps

  1. Clone Repository
git clone https://github.com/DaffaJatmiko/go-rest-project-manager.git
cd go-rest-project-manager
  1. Configure Environment Variables

Create a .env file in the root directory and add the following configuration:

DB_USER=root
DB_PASSWORD=mysqldatabase123
DB_HOST=mysql
DB_PORT=3306
DB_NAME=goprojectmanager
JWT_SECRET=randomjwtsecret
  1. Build and Run Docker Containers
docker-compose up --build
  1. Accessing the API

The application will run at http://localhost:3000. You can use Postman or other tools to access the API endpoints.

Testing

This project includes testing to ensure the reliability and correctness of the API endpoints. You can find the testing code in the service folder. To run the tests, follow these steps:

  1. Navigate to the service folder in your terminal.
  2. Run the following command to execute the tests:
go test

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author