BitTrack is a web application for managing and monitoring cryptocurrency portfolios. Users can:
- Add and manage a range of crypto assets.
- View real-time prices for each cryptocurrency.
- Track the total portfolio value, with updates based on live data from a crypto API.
- Receive live investment suggestions from an AI consultant tailored to their holdings.
Built with Vue3 and styled with Quasar for responsive material design, BitTrack uses Supabase for user authentication, portfolio database management, and password reset functionality.
The project is crafted for a seamless user experience across devices. The main pages are:
- Login/Signup/Reset Password: Register or log in with Supabase authentication, with a reset password option.
- Portfolio Page: The central hub, displaying:
- Added assets with options to add, edit, or delete holdings.
- Real-time cryptocurrency prices, continuously updated.
- Total portfolio value, dynamically calculated.
- AI-powered investment suggestions based on asset allocation.
- Market Page: Live market data overview, including prices and trends across a range of cryptocurrencies.
- AI Consultant Page:
Dedicated to providing live, personalised investment suggestions. Based on the user’s portfolio and market conditions, the AI consultant offers real-time insights and recommendations to support informed investment decisions.
⚠️ This feature is upcoming.
- Responsive Layout: Optimised for desktop and mobile devices using Quasar’s responsive components.
The database for BitTrack is structured with the following tables to support portfolio management, cryptocurrency tracking, and personalised investment suggestions:
Table | Column | Data Type | Description |
---|---|---|---|
User | id |
uuid |
Unique identifier for each user, referenced by other tables. |
email |
text |
User's email address, used for authentication. | |
password |
text |
User's password, used for authentication (should be securely hashed and managed). | |
Portfolio | id |
uuid |
Unique identifier for each portfolio entry. |
user_id |
uuid |
References the user’s ID from User.id , linking each portfolio entry to a specific user. |
|
crypto_id |
uuid |
References the cryptocurrency ID from the Crypto table. |
|
quantity |
float8 |
The amount of cryptocurrency held by the user. | |
Crypto | id |
uuid |
Unique identifier for each cryptocurrency. |
name |
text |
The name of the cryptocurrency. | |
Suggestion | id |
uuid |
Unique identifier for each suggestion entry. |
created_at |
timestamptz |
Timestamp of when the suggestion was created. | |
user_id |
uuid |
References the user’s ID from User.id , linking each suggestion to a specific user. |
|
content |
text |
The investment suggestion text tailored to the user’s portfolio. |
This schema supports user-specific data by linking the Portfolio
and Suggestion
tables to User.id
. It ensures that each user’s portfolio and suggestions are securely separated and managed.
This project leverages the following technologies:
- Vue3: Front-end framework with a reactive component structure.
- Quasar: UI library with responsive, material design components.
- Supabase: Manages user authentication, enables a secure password reset feature, and offers a real-time database for storing portfolios and AI recommendation history.
- CoinGecko API: Live cryptocurrency prices for accurate portfolio valuation.
- GPT AI: AI assistant providing real-time investment insights based on current holdings.
The code is modular, with encapsulated API calls and Supabase functions to maintain clarity and reusability.
- The app is deployed on Vercel.
- Visit the website: BitTrack.
- Since Supabase’s free plan only supports SMTP email services for project members, you can use the shared account for testing purposes. However, the sign up and password reset functionality will be disabled.
- Shared Account:
email=[email protected] password=bittrack
If you have any issues with login, signup, or other account-related matters, please don't hesitate to contact me!
- Clone the repository.
- Run
npm install
to install dependencies. - Add an
.env
file with the following content:VITE_SUPABASE_URL={Supabase Project URL} VITE_SUPABASE_KEY={Supabase's Project Key} VUE_APP_BASE_URL={http://localhost:9000}
- Run
npm run dev
to start the development server locally.
Future improvements planned for BitTrack include:
- Code Refactoring: Streamlining code for better readability and performance.
- Enhanced Error Handling: Introducing robust error management to improve stability.
- AI Consultant Integration: Connecting the AI Consultant with an existing AI model for more personalised recommendations.
- UI/UX Refinements: Further enhancing the user interface and experience based on user feedback.