GMarket is a real-time stock watchlist and market monitoring platform built with Angular (frontend) and Go (Fiber) (backend). It provides live stock price updates, market depth visualization, watchlist management, and scalable service-driven architecture.
- Real-time LTP (Last Traded Price) updates
- Market depth visualization (bids & asks)
- Spread calculation
- Efficient viewport-based data fetching
- Create & switch between watchlists
- Add / remove stocks
- Persist watchlists per user
- Angular CDK Virtual Scroll
- Fetches only visible stock data
- Optimized polling strategy
- Signal-based reactive UI
- Secure login/logout
- Session token management
- Cookie-based auth support
- Image upload support
- Profile avatar storage
- Single DB connection pool
- Dependency injection via constructors
- Viewport-driven data fetching
- Separation of concerns
- Stateless controllers
- Signal-based UI reactivity
- Service-driven backend architecture
- Angular
- Angular Signals
- Angular CDK Virtual Scroll
- Angular Material
- TailwindCSS
- Go
- Fiber
- PostgreSQL
- database/sql
- JWT / Session tokens
- Docker
- REST APIs
- Polling-based real-time updates
git clone https://github.com/Sahil2004/gmarket.git
cd gmarket/serverCreate .env from example.env
The database is setup in the docker compose itself.
docker compose upTo run for development:
docker compose watchand in another terminal you can view the logs:
docker compose logs -fgo mod tidy
go run main.gohttp://localhost:3000cd client
npm install
npm starthttp://localhost:4200This project is under GPL-v2. You can view it at LICENSE.
For any information or just to say hi, you can contact me at: me.sahil.gg@gmail.com.