This repository contains the microservices middleware built using .NET Web API for the OnPaper paper trading application. It includes two primary microservices:
- User Management and Authentication Service
- Trade Management Service
The OnPaper application simulates a trading environment where users can conduct paper trades without any real financial risk on Indian Stock Exchanges like BSE and NSE. This repository hosts the back-end microservices which are responsible for handling user authentication, user management, and trade operations.
This service is responsible for:
- User registration and authentication.
- Managing user profiles.
- Handling user sessions and authorization.
This service handles:
- Recording trades conducted by users.
- Managing trade data and history.
- Providing trade-related insights and analytics.
- C#: The primary programming language for microservice development.
- .NET Web API: Framework used to build the microservices.
- Docker: For containerizing the microservices.
- Azure: For deploying the microservice container in a Container App.
- GitHub Actions: Establishing CI/CD pipeline for Continuous deployment of the microservices on Azure Container Apps
Ensure that you have the following installed:
- Clone the repository:
git clone https://github.com/siddhantsnaik/Paper-Trading.git cd Paper-Trading
-
Navigate to the directory of the microservice you want to run:
cd UserManagementService # or cd TradeManagementService
-
Build and run the microservice using the .NET CLI:
dotnet build dotnet run
-
Alternatively, you can use Docker to run the services:
docker build -t user-management-service . docker run -p 5000:80 user-management-service
POST /api/register
: Register a new user.POST /api/login
: Authenticate a user and start a session.GET /api/users/{id}
: Get user profile details.PUT /api/users/{id}
: Update user profile.
POST /api/trades
: Record a new trade.GET /api/trades/{userId}
: Get trade history for a user.GET /api/trades/{tradeId}
: Get details of a specific trade.DELETE /api/trades/{tradeId}
: Delete a trade.
We welcome contributions! Please read our contributing guidelines to get started.
This project is licensed under the MIT License. See the LICENSE file for details.