Skip to content

This document serves as the entry point for the Buy Better System. The system comprises eight sub-repositories and employs a technology stack that includes Go, TypeScript, Kubernetes, ArgoCD, and other technologies.

Notifications You must be signed in to change notification settings

opplieam/buy-better

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Buy Better Project

This is an entry point for Buy Better project. It contains the big picture of project.

Looking for the source code ? Please visit List of all repositories

Table of contents

Overview

We are currently in an era of online shopping and ecommerce. Unfortunately, there are only 2 major ecommerce platforms available in my country. This limits my options. The issue here is that the prices of products fluctuate from day to day or week to week. I find it difficult to determine if I am getting a fair price, and I can't tell if a product is more expensive or cheaper than it was yesterday or last week. The prices shown in the application are not reliable, and there is no transparent or clear pricing information. Additionally, comparing the same item across different ecommerce applications is a tedious task to do manually.

Buy Better aims to help users track the price of specific items. It allows users to compare the current price with the price from last week, identify the lowest and highest prices, and when they occurred. Users can also set notifications for when the price falls below a certain threshold, and compare prices between different sellers or applications.

In conclusion, Buy Better is an online shopping assistant. All you have to do is send the product URL, and the admin will set things up.

NOTE: This project is for learning purpose and not fully complete yet

Overall architect

architect This is not a final design.

There are 3 big parts.

  1. Web scraping service

To keep prices up to date, web scraping is necessary to automate the task of collecting prices from the target website.

  1. Buy Better Admin

The user management, The matching (by hand for now) category, and products from various websites. In the future, It will use machine learning to automate label data.

  1. Buy Better Core

This part is where the user interacts for both frontend and backend. I designed it to be scalable by using gRPC to communicate between the services.,

List of services

Overall CI/CD

img

Overall database diagrams

db-admin dbcore This is not a final design.

Overall Tech stack

Web scraping

  • Python
    • Scrapy / Splash
    • Playwright

Frontend

  • Typescript
    • React
      • React-query
      • Mantine
      • React-router
    • Playwright

Infrastructure

  • Docker / docker-compose
  • Kubernetes
  • Helm
  • ArgoCD
  • Githubs Action
  • Terraform
  • AWS - Lambda, SQS
  • GCP - GKE

Backend

  • Go (Golang)
  • go-migrate
  • Mockery
  • Testify
  • Proto / gRPC
  • Postgres (supabase)
  • Otel
  • SSE
  • Raft, Serf
  • Goroutine
  • NATs Jetstream

About

This document serves as the entry point for the Buy Better System. The system comprises eight sub-repositories and employs a technology stack that includes Go, TypeScript, Kubernetes, ArgoCD, and other technologies.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published