Skip to content

Hopster πŸš• β€” Scalable, Microservice-Powered Ride Sharing Monorepo with Next, Go, gRPC, and Kubernetes

Notifications You must be signed in to change notification settings

ParthKapoor-dev/hopster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš— Hopster - A Ride Sharing System (WIP)

Hopster is a modular, scalable, and microservice-based ride-sharing backend system written in Go using gRPC, designed to handle real-world challenges of user onboarding, driver management, and trip coordination.

πŸ”§ Currently in development – built with clean architecture principles, type-safe protobufs, and structured monorepo tooling.


πŸ“ Architecture

Hopster is structured into 3 main services + 1 gateway:


apps/
β”œβ”€β”€ user      --> Manages user registration & login
β”œβ”€β”€ driver    --> Handles driver profile & availability
β”œβ”€β”€ trip      --> Coordinates ride creation & status
β”œβ”€β”€ gateway   --> HTTP interface for frontend, routes to internal gRPC services
packages/
└── proto     --> Shared protobuf definitions and generated Go code

Each service exposes a gRPC interface, and the gateway handles HTTP requests and converts them into internal gRPC calls.


βš™οΈ Tech Stack

  • 🧠 Golang – Modern, fast, strongly typed backend
  • πŸ”Œ gRPC – Internal service communication
  • πŸ“¦ Protocol Buffers – Schema definition & code generation
  • πŸ› οΈ Monorepo – Centralized using native Go tooling
  • πŸ“ Modular Clients – Each service has a gRPC client abstraction
  • πŸ§ͺ Testable Design – Handler abstractions for easier mocking

πŸš€ Getting Started

βœ… Prerequisites

  • Go 1.21+
  • Protobuf compiler (protoc)
  • protoc-gen-go and protoc-gen-go-grpc
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

πŸ“¦ Clone and setup

git clone https://github.com/parthkapoor-dev/hopster
cd hopster

# Initialize and download Go modules
go mod tidy

πŸ”§ Build Protobufs

protoc --go_out=packages/proto/build --go-grpc_out=packages/proto/build \
  --proto_path=packages/proto packages/proto/*.proto

🏁 Run services

1. Start the User Service

cd apps/user
go run main.go

2. Start the Gateway

cd apps/gateway
go run main.go

Services listen on ports like :2000, and Gateway on :3000 by default.


πŸ“¨ API Flow Example

Frontend  -->  Gateway (HTTP)  -->  gRPC (User Service)
POST /users/register           -->  RegisterNewUser(ctx, pb.User)

The gateway translates HTTP requests into protobufs, calls the gRPC method, and responds to the client.


πŸ› οΈ Roadmap

  • gRPC Setup with Gateway
  • User Service Skeleton
  • Implement User Registration Logic (DB)
  • Add Driver Service
  • Add Trip Service
  • Authentication & Middleware
  • Docker Compose + Dev tooling

🀝 Contribution

Pull requests and issues are welcome. Let’s build something scalable and elegant!


πŸ§‘β€πŸ’» Author

Parth Kapoor 🌐 Portfolio | πŸ”— LinkedIn | πŸ“‚ GitHub


πŸ“„ License

MIT License

About

Hopster πŸš• β€” Scalable, Microservice-Powered Ride Sharing Monorepo with Next, Go, gRPC, and Kubernetes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •