GO LANG & MongoDB Portfolio

CRUD Product API with JWT,
GitHub repository: https://github.com/cholakovit/go-product-api

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.

You can download the code and explore it from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework
  • JWT
  • MongoDB

Restaurant Management System with GO,
GitHub repository: https://github.com/cholakovit/restaurant-management-system

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.

As a whole, the project is complex and interesting. If you'd like to review it, you can download the code from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework
  • MongoDB

E-commerce System with GO,
GIT: https://github.com/cholakovit/go-e-commerce

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
As a whole, the project is complex and interesting. If you'd like to review it, you can download the code from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework
  • Mongo DB

gRPC with GO,
GitHub repository: https://github.com/cholakovit/grpc-jobs

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.

If you're interested, you can view the code on  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework
  • MongoDB

Blockchain with GO,
GitHub repository: https://github.com/cholakovit/golang-blockchain

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.

You can download the code and explore it from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework
  • MongoDB

ChatApp with GO,
GitHub repository: https://github.com/cholakovit/golang-chatapp

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.

You can download the code and explore it from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework

A Book API (Fiber / PostgreSQL - Local / GORM)
GitHub repository: https://github.com/cholakovit/fiber-postgres-api

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.

You can download the code and explore it from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Fiber Framework
  • PostgreSQL - Local
  • Testify - Unit testing
  • GORM ORM

Blog with posts (Gin / PostgreSQL - As a Service / GORM)
GitHub repository: https://github.com/cholakovit/gorm_robby

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.

You can download the code and explore it from the  GitHub repository.

Main Technologies:

  • Go Lang
  • Gin Framework
  • PostgreSQL - As a Service
  • GORM ORM