ecom-rest-api

module
v0.0.0-...-2923761 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2024 License: MIT

README

E-Commerce REST API

This e-commerce REST API is built with Go and provides a robust backend for e-commerce applications. The API supports user authentication, product creation, product retrieve, and cart checkout functionality.

Features

  • User registration and login with JWT authentication.
  • Product management (create, retrieve).
  • Cart checkout process.

Technology Stack

  • Go - The primary programming language.
  • PostgreSQL - Relational database management system.
  • JWT (JSON Web Tokens) - For authorization and secure communication.
  • Golang-Migrate - For database migrations.
  • Validator - For data validation.
  • Bcrypt - For password hashing.
  • PQ - PostgreSQL driver for Go.
  • Godotenv - For loading environment variables from .env files.

How To Run

Clone the Repository
git clone git@github.com:vnsonvo/ecom-rest-api.git
cd ecom-rest-api
Set Up Environment Variables

Copy the sample environment configuration file and edit it to suit your needs:

cp .env.sample .env

Edit .env and set your database connection details and JWT secret key.

Instal Migrate CLI

Refer to this page migrate-cli

Run Database Migrations

Ensure your PostgreSQL database is running, and then execute the following command to apply database migrations:

make migrate-up

Build and Run the Application

make run
Run Tests

Run the command

make test

Alternatively, use Docker Compose to build and run the application along with PostgreSQL:

docker-compose up --build
Improvement
  • Introduce a feature to manage user addresses. This will enable the storage of addresses for each user, which can then be dynamically used during the checkout process.
  • Develop functionality to record and retrieve the history of orders placed by each user. This will allow orders to be stored and displayed within the user's profile area.
  • Create an endpoint to cancel orders. This will provide users with the option to cancel their orders.
Contributing

Contributions are welcome! Please feel free to submit a pull request.

Directories

Path Synopsis
cmd
api
migrate command
services

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL