Modern Full-Stack Stock Trading & Portfolio Management Platform
- Overview
- Project Status
- Features
- Security
- Tech Stack
- Architecture
- Getting Started
- Project Structure
- API Reference
- Contributing
- Disclaimer
- License
Trading Application is a full-stack stock trading platform developed using Go (Golang), Vue.js, Vuetify, and PostgreSQL.
The application enables users to securely register, manage their profile, maintain wallets, place buy and sell orders, track portfolios, and manage investments through a modular and scalable architecture.
This project is being developed as a production-oriented learning and portfolio application following enterprise software engineering practices.
This project is currently under active development.
- User Authentication & IPV KYC Flow
- Wallet Management
- Stock Trading
- Profile Management
- Admin Dashboard
- Live Stock Market API Integration
- Watchlist
- Portfolio Analytics
- Notifications
- Real-Time Updates
- Mobile Optimization
- Secure user registration and login
- In-Person Verification (IPV) & comprehensive KYC flow
- JWT-based authentication
- Password reset and forgot password flow
- Comprehensive profile management (Occupation, Address, Bank details)
- Wallet Management β Maintain balances and transaction history
- Order Placement β Execute secure buy and sell orders
- Real-Time Tracking β Monitor stock prices and portfolio performance
- Dashboard β Live overview of holdings and total balance
- Investment Management β Track and manage long-term investments
- Modular & Scalable β Designed following enterprise software engineering practices
- High-Performance Backend β Optimized concurrent processing with Go
- JWT Authentication
- Password Hashing (bcrypt)
- Protected Routes
- Role-Based Authorization
- Session Management
- Backend Input Validation
- Frontend Input Validation
- Environment-Based Configuration
| Technology | Purpose |
|---|---|
| Vue 3 | Progressive JavaScript framework for building user interfaces |
| Vuetify | Material Design component framework for Vue |
| Node.js | Runtime environment for development |
| Technology | Purpose |
|---|---|
| Go | Core language for backend services |
| Go Modules | Dependency management |
| RESTful API | Communication between client and server |
| Technology | Purpose |
|---|---|
| PostgreSQL | Primary robust relational database for users, wallets, and trades |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CLIENT (Browser) β
β ββββββββββββββ ββββββββββββββββ βββββββββββββββββββββββ β
β β Vue 3 β β Vuetify β β Trading UI β β
β β Components β β Styling β β & Wallets β β
β βββββββ¬βββββββ ββββββββββββββββ ββββββββββββ¬βββββββββββ β
β β β β
β β REST API β HTTP β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββΌβββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββ ββββββββββββββββββββββββββ
β Go Backend β β External APIs β
β βββββββββββββββββ β β (Market Data) β
β β Controllers β β ββββββββββββββββββββββββββ
β βββββββββββββββββ€ β
β β Services β β
β βββββββββββββββββ€ β
β β Repositories β β
β βββββββββββββββββ€ β
β β Auth / JWT β β
β βββββββββ¬ββββββββ β
β β β
ββββββββββββΌβββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Databases β
β βββββββββββββββββββββββ β
β β PostgreSQL β β
β β (Profiles & Trades) β β
β βββββββββββββββββββββββ β
βββββββββββββββββββββββββββββ
| Requirement | Version |
|---|---|
| Node.js | β₯ 18.x |
| Go | β₯ 1.20 |
| PostgreSQL | Latest |
git clone https://github.com/Bharani6/Trading_Application.git
cd Trading_ApplicationNavigate to the backend directory, install dependencies, and start the Go server:
cd backend
go mod tidy
go run cmd/server/main.goIn a new terminal window, navigate to the frontend directory, install dependencies, and start the development server:
cd frontend
npm install
npm run devTrading_Application/
βββ backend/ # Go Backend (Modular Architecture)
β βββ cmd/server/ # Application entry point (main.go)
β βββ internal/ # Core Business Logic & Modules
β β βββ admin/ # Admin panel controllers & services
β β βββ auth/ # Authentication & JWT logic
β β βββ config/ # Environment & app configurations
β β βββ database/ # DB connection & ORM setup
β β βββ logger/ # Custom logging utilities
β β βββ market/ # External market data integration
β β βββ middleware/ # HTTP middlewares (auth, logging)
β β βββ profile/ # User profile & KYC management
β β βββ response/ # Standardized API responses
β β βββ routes/ # API route definitions
β β βββ trade/ # Trading execution logic
β β βββ user/ # User management & models
β β βββ utils/ # Shared backend utilities
β β βββ wallet/ # Fund management & ledgers
β β βββ watchlist/ # User stock watchlists
β βββ go.mod # Go dependencies
β βββ go.sum
β
βββ frontend/ # Vue 3 Frontend (Component-Based)
β βββ public/ # Static assets
β βββ src/ # Vue source code
β β βββ api/ # Axios clients & API wrappers
β β βββ assets/ # Images, CSS, and styling
β β βββ components/ # Reusable Vue/Vuetify components
β β βββ constants/ # Global frontend constants
β β βββ layouts/ # Page layouts (Navbar, Footer, Sidebar)
β β βββ router/ # Vue Router definitions
β β βββ services/ # Business logic & external calls
β β βββ store/ # State management (Vuex/Pinia)
β β βββ utils/ # Shared frontend utilities
β β βββ views/ # Main page components
β β βββ App.vue # Root component
β βββ package.json # NPM dependencies
β βββ vite.config.js # Build configuration
β
βββ LICENSE # MIT License
βββ README.md
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/v1/auth/register |
Register a new user |
POST |
/api/v1/auth/login |
Authenticate & get JWT token |
POST |
/api/v1/auth/forgot-password |
Generate password reset token |
POST |
/api/v1/auth/verify-reset-token |
Verify password reset token |
POST |
/api/v1/auth/reset-password |
Set new user password |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/users/me |
Get current user's profile |
POST |
/api/v1/users/kyc |
Submit KYC details |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/wallet/balance |
Get current user's wallet balance |
POST |
/api/v1/wallet/add-fund |
Add funds to wallet |
POST |
/api/v1/wallet/withdraw |
Withdraw funds from wallet |
GET |
/api/v1/wallet/transactions |
Get wallet transaction history |
GET |
/api/v1/shares |
Get available shares to trade |
POST |
/api/v1/trades/buy |
Execute a buy order |
POST |
/api/v1/trades/sell |
Execute a sell order |
GET |
/api/v1/trades/history |
Get user's trade history |
POST |
/api/v1/trades/:id/cancel |
Cancel an open trade |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/watchlist |
Get user's watchlist |
POST |
/api/v1/watchlist |
Add a stock to watchlist |
DELETE |
/api/v1/watchlist/:id |
Remove a stock from watchlist |
PUT |
/api/v1/watchlist/:id/favorite |
Toggle favorite status |
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This application is developed for educational and portfolio purposes only.
It does not provide real financial advice or execute real stock market transactions.
This project is licensed under the MIT License β see the LICENSE file for details.
Bharanidharan R β @Bharani6
Built with β€οΈ for modern trading.