- This project is just a mock of the Kite trading application built using Flutter for frontend and GoLang for the backend.
- The application is designed to provide real-time mocked stock updates integrating only the Watchlist Page.
- Navigate to the backend directory.
cd ./server- Run the WebSocket server:
go run cmd/main.go- Simply start the server on localhost and install the apk from APK
- To keep things simple, I've just hardcoded this entire project to run it on
localhostviaport:8080
flutter run -d chrome- Framework: Flutter is used for building a cross-platform mobile application with a responsive and modern UI.
- State Management: Riverpod is used for state management to handle asynchronous data streams and UI updates efficiently.
- Target Platforms : Small Screen - Mobile Devices
- WebSocket Server: A WebSocket server is implemented in GoLang to provide real-time stock updates.
- Web-Framework - Favoured gin-gonic framework.
- Stock Ticker: Randomly chose 10 different stocks.
- Ticker Update: Each second interval the ticker updates with +2/-2 frequency.
- Socket Connection - Upgraded the connection to web-socket by Gorilla-Websocket.
- Scope - Due to limited time, I've just integrated
WatchListscreen with 10 stocks coming from API as a way to showcase the implementation. - Search Functionality:
- I tried leveraging my own fuzzy search package called
Fuzzy_Boltfrom pub.dev
- I tried leveraging my own fuzzy search package called
- Real-Time Stock Updates:
- Stock data is randomly tweeked every second to mimic the change in stock price.
- Error Handling:
- Displays an error message and a retry button if the WebSocket connection fails.
- I've only tried to replicate the basic user-interface without graphs and charts due to limited time.
- Navigate to the backend directory.
cd ./server- Run the WebSocket server:
go run cmd/main.go- Navigate to the client directory.
cd ./client/zerodha_clone- If you're running this project on emulator then, client runs automatically on emulator's IP address -
ws://10.0.2.2:8080/stocks- If you're running this project on web then client runs automatically on below address -
ws://localhost:8080/stocks- Run the WebSocket server:
flutter run Note - Alternatively, you may use adb port transfer like below if needed to avoid confusion.
adb transfer tcp:8080 tcp:8080






