CoolFace
Apppublic

IrannaJ/wealthwhiz-smart-portfolio-tracker

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
2 commits on main
d4d90921y ago

Full-Stack Engineer Assignment: Financial Portfolio Tracker Objective: Build a secure, scalable, full-stack application that simulates a financial portfolio management dashboard. This project should demonstrate proficiency in the core technologies mentioned in the job post and the ability to handle and visualize real-world financial data. Timeline: 4-5 Days Core Requirements 1. Backend (Java + Spring Boot) ●​ API Design: Create RESTful API endpoints for managing a user's portfolio. The API should allow users to: ○​ Create a new portfolio. ○​ Add or remove assets (e.g., stocks, ETFs) to/from the portfolio by ticker symbol. ○​ Retrieve the complete details of a portfolio, including a list of all assets and their current market values. ●​ Data Integration: Use a public stock data API like Alpha Vantage or Yahoo Finance to fetch real-time or historical stock information. Your backend should be responsible for fetching this data and serving it to the front end. ●​ Database: Use PostgreSQL as the primary data store. Design a schema to store user information, portfolios, and their associated assets. ●​ Security: Implement a basic security layer using Spring Security with a token-based approach (e.g., JWT) to authenticate users and secure API endpoints. ●​ AI/ML Simulation: Create a mock API endpoint that "simulates" a simple AI-driven insight. For instance, based on the assets in the portfolio, the backend could calculate and return a "Diversification Score" or recommend a hypothetical asset to purchase. This feature demonstrates the ability to integrate with an intelligent service. 2. Frontend (React.js/Next.js) ●​ User Interface: Build a responsive single-page application that serves as the portfolio dashboard. It should allow a user to: ○​ Log in and view their personal dashboard. ○​ Add a new stock to their portfolio using its ticker symbol. ○​ View a list of all assets in their portfolio. ○​ See key data points for each asset, such as the ticker symbol, current price, quantity owned, and total value. ●​ Data Visualization: Incorporate a charting library (e.g., Chart.js) to display a historical price chart for a selected stock or a pie chart showing the portfolio's asset allocation. ●​ UX: Focus on a clean and intuitive user experience. The application should handle loading states, errors, and an empty portfolio gracefully. ●​ Communication: The front end must communicate with your Java backend via the REST API endpoints you designed.Submission & Evaluation 1.​ Repository: Provide a link to an open-source GitHub repository with the complete codebase. The repository must be well-organized and include a clear README.md file with a brief explanation of your architectural choices. 2.​ Deployment: Deploy the application and provide a link to the live demo. You should deploy the front end to Vercel or Netlify and the backend to a cloud platform like Heroku, AWS Elastic Beanstalk, or a similar service that supports a Java runtime. The README.md should include instructions on how to run both services. 3.​ Dockerization: For ease of local setup, include a docker-compose.yml file that can start both the backend and PostgreSQL database with a single command. This demonstrates an understanding of containerization, which is crucial for modern DevOps. this is my requirement and flow is flowchart TD Start[Start] --> Login[User Login] Login --> Authenticate{Authenticate via JWT} Authenticate -->|Success| Dashboard[Load Portfolio Dashboard] Authenticate -->|Failure| LoginFail[Show Login Error] Dashboard --> CreatePortfolio[Create New Portfolio] Dashboard --> ViewPortfolio[View Portfolio Details] Dashboard --> AddAsset[Add Asset to Portfolio] Dashboard --> ViewInsights[View AI/ML Insights] Dashboard --> Logout[Logout] CreatePortfolio --> SavePortfolio[Save Portfolio in DB] SavePortfolio --> Dashboard AddAsset --> FetchStock[Fetch Stock Data from API] FetchStock --> SaveAsset[Save Asset Info in DB] SaveAsset --> Dashboard ViewPortfolio --> FetchPortfolio[Get Portfolio + Assets from DB] FetchPortfolio --> ShowPortfolio[Display Portfolio & Asset Details] ShowPortfolio --> Dashboard ViewInsights --> ComputeInsights[Compute AI/ML Insights] ComputeInsights --> ShowInsights[Display Insights] ShowInsights --> Dashboard Logout --> End[End Session] . and sequence diagram is sequenceDiagram

IrannaJ
165f3e51y ago

initial commit

IrannaJ