Skip to content

fazelsamar/go-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4fc5841 · Jul 28, 2023

History

25 Commits
Jul 28, 2023
Jul 28, 2023
Jul 15, 2023
Jul 28, 2023
Jul 28, 2023
Jul 15, 2023
Jul 28, 2023
Jul 28, 2023
Jul 28, 2023
Jul 28, 2023
Jul 8, 2023
Jul 28, 2023
Jul 28, 2023

Repository files navigation

Go Ecommerce

This Go application is a backend implementation for an ecommerce application. It provides a range of features such as user authentication, products management, creating carts and orders. This project is using clean architecture.

Technologies Used

  • Go
  • Fiber
  • PostgreSQL
  • Docker
  • nginx
  • pgAdmin

Installation

Prerequisites

  • Docker
  • Docker Compose
  • Go

Clone the repository:

git clone https://github.com/fazelsamar/go-ecommerce.git

To run this application you have two options:

  1. First is to run it using docker-compose for production :

    docker-compose -f docker-compose-prod.yml up -d
  2. Second is to run just the dependecy in docker-compose for development :

    docker-compose up -d

    And then run the go:

    go run ./cmd

Features

This application provides a range of features including:

  • User authentication: users can sign up, log in and log out.

  • Create and delete products by admin.

  • Create and delete cart by anonymous user.

  • Add products to the cart.

  • Creating the order base on the carts.

Code Structure

  • cmd: contains the main go entry file.
  • internal/
    • entity: contains database models.
    • handlers: contains http handlers for each of the supported endpoints.
    • middleware: contains custom middleware used in the application.
    • repositories: contains implementations of the persistence interface to interact with the database.
    • routes: contains the main application logic for the backend.
    • services: contains the business logic and use case implementation of the application.
  • pkg: contains the packages such as database connection and managing env files.
  • proxy: contains the nginx config file.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Copyright© 2023 Fazelsamar, Licensed under MIT

About

An api base golang eccomerce

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published