/go-todo-app

This is a todo application implemented by the Golang and fiber web framework. In it, we can use the Postgresql database to store the to-do tasks.

Primary LanguageGo

General view about the Todo list Project

This is a todo list project built using the fiber web framework in Golang.

The project provides RESTful APIs for user authorization in posting tasks

The backend includes functionalities to sign up, login, task posting, update task , delete task.

Technology Stack

The Todo list Real Time Exercise Task project is built using the following technologies:

  • Golang: The backend is written in Go (Golang), a statically typed, compiled language.

  • fiber: The fiber web framework is used to create RESTful APIs and handle HTTP requests.

  • JWT: JSON Web Tokens are used for secure user authentication and authorization.

  • bcrypt: Passwords are stored securely in hashed form using the bcrypt hashing algorithm.

  • postgres: PostgreSQL is an advanced, enterprise class open source relational database that supports both SQL and JSON querying. It is a highly stable database management system, which has contributed to its high levels of resilience,and correctness.

Getting Started

Installation

  1. Clone the repository:

    git clone https://github.com/muthukumar89uk/go-todo-app.git
    

Click here to directly download it.

Install dependencies:

      go mod tidy

Run the Application

  1. Run the Server

       go run .
    
  2. The server will start on http://localhost:8080.

Project explanation

  • the user can sign up and login
  • user can post his task details
  • user can update and delete his task details
  • user can filter date and status to see his task details

The following API endpoints are available in this project:

  • POST /signup: Register a new user account.

  • POST /login: Log in with registered credentials and receive a JWT token.

  • POST /posttask: Post task details (user Authorization required).

  • GET /updatetask: user can update his task details (user Authorization required).

  • GET /deletetask/:id: user can delete his task details (user Authorization required).

  • PUT /gettasksbydate/:id: user can filter date and status to see his task details(user Authorization required).