Skip to content
d-chobotar edited this page Jul 16, 2024 · 1 revision

Crypto Portfolio Tracker

Project Description

A Crypto Portfolio Tracker that allows users to manage their cryptocurrency investments and track the value of their holdings in real-time. The application will include user authentication, CRUD operations for managing cryptocurrency assets, and integration with a third-party API for real-time cryptocurrency prices.

Core Features

User Authentication

  • Registration: Users can register with their email and password.
  • Login: Users can log in with their credentials.
  • Password Reset: Users can reset their password if forgotten.

Portfolio Management

  • Add Cryptocurrency: Users can add cryptocurrencies to their portfolio with details like coin name, amount held, and purchase price.
  • View Portfolio: Users can view a summary of their cryptocurrency holdings.
  • Edit Cryptocurrency: Users can edit the details of their holdings.
  • Delete Cryptocurrency: Users can delete cryptocurrencies from their portfolio.

Real-Time Price Tracking

  • Fetch Current Prices: Integrate with a third-party API (e.g., CoinGecko, CoinMarketCap) to fetch real-time prices for cryptocurrencies.
  • Update Portfolio Value: Calculate the current value of the user's portfolio based on real-time prices.

CRUD Operations

  • Portfolio Views: Home page (overview), portfolio list page, add/edit cryptocurrency page.

Technologies to Use

  • Frontend: HTML5, CSS3, JavaScript, React, Bootstrap
  • Backend: Python, Flask, MySQL
  • Version Control: Git
  • Security: bcrypt for password encryption
  • API Integration: CoinGecko or CoinMarketCap API
  • Deployment: Heroku, Vercel, or AWS

User Stories

  • User Registration: As a user, I want to register an account so that I can access the platform.
  • User Login: As a user, I want to log in to my account so that I can access personalized features.
  • Password Reset: As a user, I want to reset my password if I forget it so that I can regain access to my account.
  • Add Cryptocurrency: As a user, I want to add new cryptocurrencies to my portfolio so that I can track my investments.
  • View Portfolio: As a user, I want to view a summary of my cryptocurrency holdings so that I can see the current value of my portfolio.
  • Edit Cryptocurrency: As a user, I want to edit my cryptocurrency holdings so that I can update purchase details.
  • Delete Cryptocurrency: As a user, I want to delete cryptocurrencies from my portfolio so that I can manage my holdings.
  • Fetch Current Prices: As a user, I want to see the current prices of my cryptocurrencies so that I can track my portfolio's value in real-time.

Project Plan

Week 1: Planning and Design

  • Define project scope and requirements.
  • Create wireframes and design mockups.
  • Set up the project repository on GitHub.
  • Write user stories and plan tasks for the first sprint.

Week 2: Frontend Development

  • Set up the development environment.
  • Implement user authentication (registration, login, password reset) in React.
  • Develop the Home Page and Portfolio List components.
  • Create forms for adding and editing cryptocurrency holdings.

Week 3: Backend Development

  • Set up Flask and MySQL.
  • Implement user authentication routes and models.
  • Create API endpoints for portfolio management (CRUD operations).
  • Integrate frontend with backend (API calls).

Week 4: Integration and Deployment

  • Integrate CoinGecko or CoinMarketCap API for real-time price tracking.
  • Write unit tests and conduct user testing.
  • Fix bugs and optimize the application.
  • Deploy the application to a production environment (Heroku, Vercel, or AWS).
  • Monitor and maintain the application.

Next Steps

  • Form your team or decide to proceed solo.
  • Create a GitHub project and invite your team members.
  • Define user stories and start planning tasks for each sprint.
  • Begin development following the structured plan above.