Skip to content

Latest commit

Β 

History

42 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ˆ Trading Application

Modern Full-Stack Stock Trading & Portfolio Management Platform

Vue 3 Vuetify Go PostgreSQL License


πŸ“‹ Table of Contents


πŸ“Œ Overview

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.


🚧 Project Status

This project is currently under active development.

Core Modules Completed

  • User Authentication & IPV KYC Flow
  • Wallet Management
  • Stock Trading
  • Profile Management
  • Admin Dashboard
  • Live Stock Market API Integration
  • Watchlist

In Progress

  • Portfolio Analytics

Planned

  • Notifications
  • Real-Time Updates
  • Mobile Optimization

✨ Features

πŸ” Authentication & Security

  • 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 & Orders

  • Wallet Management β€” Maintain balances and transaction history
  • Order Placement β€” Execute secure buy and sell orders
  • Real-Time Tracking β€” Monitor stock prices and portfolio performance

πŸ“Š Portfolio Management

  • Dashboard β€” Live overview of holdings and total balance
  • Investment Management β€” Track and manage long-term investments

πŸš€ Enterprise Architecture

  • Modular & Scalable β€” Designed following enterprise software engineering practices
  • High-Performance Backend β€” Optimized concurrent processing with Go

πŸ”’ Security

  • JWT Authentication
  • Password Hashing (bcrypt)
  • Protected Routes
  • Role-Based Authorization
  • Session Management
  • Backend Input Validation
  • Frontend Input Validation
  • Environment-Based Configuration

πŸ› οΈ Tech Stack

Frontend

Technology Purpose
Vue 3 Progressive JavaScript framework for building user interfaces
Vuetify Material Design component framework for Vue
Node.js Runtime environment for development

Backend

Technology Purpose
Go Core language for backend services
Go Modules Dependency management
RESTful API Communication between client and server

Infrastructure & Databases

Technology Purpose
PostgreSQL Primary robust relational database for users, wallets, and trades

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        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) β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

Requirement Version
Node.js β‰₯ 18.x
Go β‰₯ 1.20
PostgreSQL Latest

1. Clone the Repository

git clone https://github.com/Bharani6/Trading_Application.git
cd Trading_Application

2. Backend Setup

Navigate to the backend directory, install dependencies, and start the Go server:

cd backend
go mod tidy
go run cmd/server/main.go

3. Frontend Setup

In a new terminal window, navigate to the frontend directory, install dependencies, and start the development server:

cd frontend
npm install
npm run dev

πŸ“ Project Structure

Trading_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

πŸ“‘ API Reference

Authentication

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

User & Profile

Method Endpoint Description
GET /api/v1/users/me Get current user's profile
POST /api/v1/users/kyc Submit KYC details

Trading & Wallets

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

Watchlist

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

🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

⚠️ Disclaimer

This application is developed for educational and portfolio purposes only.

It does not provide real financial advice or execute real stock market transactions.


πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ‘¨πŸ’» Author

Bharanidharan R β€” @Bharani6


Built with ❀️ for modern trading.

About

Full-stack stock trading platform built with Golang, Vue.js, Vuetify, and MySQL

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages