GO LANG

Overall my achievements are:

I have over 2+ years of experience with GO Lang and have been involved in building various complex projects such as large ecommerce systems and etc.

Experience with main packages:

  • GIN & Fiber Framework
  • CompileDaemon
  • Go + Mongo DB | PostgreSQL - GORM ORM | gRPC | JWT | Kafka
  • Go Templates
  • Go Playground (for validation)
  • Testify - Unit Testing
Go Kafka Microservices
source codeReview the code

Go Kafka Microservices

The Go Kafka Microservices project is a distributed, asynchronous messaging system built using Go and Apache Kafka. This project demonstrates a microservices architecture, where separate services interact with each other through Kafka message queues, ensuring reliable and decoupled communication.
Key Features: Decoupled Microservices, Asynchronous Processing, Scalable Design, Docker Integration, Go Concurrency

#Go Lang

#Fiber Framework

#Kafka

#Docker

CRUD Product API with JWT
source codeReview the code

CRUD Product API with JWT

This is a GO based API for products. Inside you can find categories, products and users. Categories and products are public and you can access them, but for the users you have to create account with jwt token and then you will be able to access any user, otherwise they are locked. Goroutines are included.

#Go Lang

#Gin Framework

#JWT

#Mongo DB

Restaurant Management System with GO
source codeReview the code

Restaurant Management System with GO

This is a slightly more complex project, with an intermediate level of complexity. It involves a restaurant order management system. The components include tables, orders, types of food items that are ordered, payment processing, issuing of receipts, as well as user authentication (JWT). Users can observe orders and manage the application but cannot place orders themselves. The file architecture follows standard conventions, making it easy to navigate. Most of the developed functions are centered around serving the process of taking an order from a restaurant table, identifying what's been ordered, prices, etc. One of the most intricate aspects of this project is the query I've constructed in the controllers/orderItemController. I've written similar queries for MySQL in the past. For authentication, I've utilized JWT, as I've mentioned, and the relevant files for this are in the helpers directory.

#Go Lang

#Gin Framework

#Mongo DB

E-commerce System with GO
source codeReview the code

E-commerce System with GO

This is an interesting ecommerce project, mid level, that I have done. I integrated the cart to be on the server. Basically, this is a good practice if we want to have no data loss during an order for one reason or another. The project has a standard file architecture. The app has the standard functions for it`s category( registration, login, ProductViewerAdmin, SearchProduct, BuyFromCart, InstantBuy, AddAddress, EditAddress, AddProductToCart, RemoveCartItem, etc. ) It also has Authentication middleware, so you can only view your products. Standard normal f-ns for this type of projects. Since I've been developing it gradually and haven't tested everything at the end, (I'm just making a module and testing), I might have small problems here and there, some gaps. I need to fully test it one soon... The hardest thing for me in this project was the query I made with Mongo Aggregation Operations in database/cart.go -BuyItemFromCart

#Go Lang

#Gin Framework

#Mongo DB

gRPC with GO
source codeReview the code

gRPC with GO

This application is quite interesting. I'm developing a job listing platform in my spare time using gRPC (a modern open-source high-performance Remote Procedure Call) instead of the traditional REST API approach. It's been proven to be 7 times faster than REST API. In this case, I retrieve job listings from the database and display them in the browser using GO templates. I have both client-side and server-side sections/folders, and I'm utilizing Protocol Buffers (proto3) which is a language to structure protocol buffer data. This includes defining the syntax in .proto files and generating data access classes from these files. Most of the functions are working as I'm in the process of development, so not everything works just yet. However, I'll be completing the project very soon.

#Go Lang

#Gin Framework

#Mongo DB

Blockchain with GO
source codeReview the code

Blockchain with GO

This application is a type of private blockchain that I'm developing. In this specific case, I've currently laid down the foundations, and everything is functioning well. I plan to further develop and expand it in the near future. For now, everything is written in a single file, main.go, which I understand might not be the best file architecture. However, I'll be working on improving this soon. The working algorithm is quite interesting, resembling a linked list data structure.

#Go Lang

#Gin Framework

#Mongo DB

Chat App with GO
source codeReview the code

Chat App with GO

This is a basic chat application for communication, where users enter a virtual room and communicate with participants. Nothing complicated. I'm using sockets for this purpose.

#Go Lang

#Gin Framework

A Book API (Fiber / PostgreSQL - Local / GORM)
source codeReview the code

A Book API (Fiber / PostgreSQL - Local / GORM)

This is a small basic CRUD model application for a books. The highlight in this case is the use of GORM ORM / PostgreSQL and some unit testing with testify.

#Go Lang

#Fiber Framework

#PostgreSQL

#Testify - Unit testing

#GORM ORM

Blog with posts (Gin / PostgreSQL - As a Service / GORM)
source codeReview the code

Blog with posts (Gin / PostgreSQL - As a Service / GORM)

This is a small basic CRUD model application for a blog with posts. The highlight in this case is the use of GORM ORM and PostgreSQL.

#Go Lang

#Gin Framework

#PostgreSQL - As a Service

#GORM ORM