Date: May 2023
QMoney is a visual stock portfolio analyzer designed to assist portfolio managers in making informed trade recommendations for their clients. This project involves building core functionality for managing stock portfolios, fetching real-time stock data, and calculating returns, with a focus on application stability, availability, and performance.
During this project:
- Implemented essential portfolio management logic and published it as a Java library (JAR).
- Refactored the application to support multiple stock quote services.
- Enhanced the application’s performance and resilience.
- Integrated Tiingo’s REST API to retrieve live stock data.
- Developed logic to calculate annualized returns based on stock purchase date and holding period.
- Java, REST API, Jackson
- Refactored code to align with an updated interface contract provided by the backend team.
- Packaged the core functionality as a JAR file for simplified versioning and distribution.
- Created usage examples to document the library’s features.
- Interfaces, Code Refactoring, Gradle
- Added a backup stock quote service using Alpha Vantage to ensure service availability.
- Enhanced stability through detailed error reporting and robust exception handling.
- Interfaces, Exception Handling
- Introduced multithreading to improve responsiveness and handle larger datasets more efficiently.
- Developed unit tests to assess and validate performance gains.
- Multithreading, Unit Testing
- Clone the Repository
git clone https://github.com/govindnathsng/QMoney.git cd QMoney Build the Project bash
./gradlew build
Run the Tests
bash
./gradlew test
⚙️ Technologies & Tools
Backend: Java, REST APIs, Multithreading, Jackson
Build Tool: Gradle
Testing: JUnit
Dependencies: Tiingo API, Alpha Vantage (Backup API)
📈 Features
Real-Time Stock Quotes: Fetch current stock prices from Tiingo and Alpha Vantage.
Annualized Return Calculation: Analyze stock performance over time.
Modular JAR Packaging: Library available as a JAR for integration into other applications.
Enhanced Stability: Backup services and robust error handling for improved availability.
Performance Optimizations: Multithreaded processing for increased efficiency.
🤝 Contributing
We welcome contributions! Fork the repository and submit a pull request to add new features or improve the existing code. 📄 License
This project is licensed under the Apache License 2.0. 📞 Contact
For questions or feedback, feel free to reach out:
GitHub: govindnathsng
Email: [email protected]
Check out my Crio Portfolio for more projects like this!