TrackC is a web application that allows users to track their cryptocurrency transactions, manage their portfolio, and stay updated with the latest cryptocurrency news. It provides real-time updates on the current value of their holdings, calculates the portfolio worth, and displays equity percentages. The app uses data from the CoinGecko API to fetch live cryptocurrency price updates and news articles.
- User Authentication: Users can create an account, log in, and log out securely.
- Add Transactions: Users can add their cryptocurrency transactions, including the coin name, number of coins bought, and price purchased.
- Remove Transactions: Users can remove previously added transactions by specifying the coin name and number of coins sold.
- Real-time Data: The app fetches live cryptocurrency prices from the CoinGecko API to provide real-time updates on the current value of each transaction and the overall portfolio worth.
- Equity Calculation: The app calculates the equity percentage for each transaction based on the price purchased and the current value, displaying it with a color-coded indicator (green for positive equity, red for negative equity).
- Portfolio Summary: The app displays the total portfolio worth and the total equity percentage for the entire portfolio.
- Cryptocurrency News: The app fetches the latest news articles from the CoinGecko API, providing users with up-to-date information about the cryptocurrency market.
- Deployment
- Technologies Used
- Setup and Installation
- Usage
- File Descriptions
- Examples of use
- Bugs
- Contributing
- Authors
- License
The app has been deployed on [Render] and can be accessed at app URL.
- Python
- Flask (web framework)
- SQLAlchemy (database toolkit)
- CoinGecko API (for live cryptocurrency prices and news)
- HTML
- Tailwind CSS Elements
- JavaScript
- Clone this repository:
git clone https://github.com/TSOlami/TrackC.git - Access the directory:
cd TrackC - Create a virtual environment and activate it:
python3 -m venv venvsource venv/bin/activate - Install the dependencies:
pip install -r requirements.txt - Set the environment variables:
- Rename the
.env.examplefile to.env. - Open the
.envfile and provide your values for theSECRET_KEY
- Set up the database:
- Rename the
config.py.examplefile toconfig.py. - Open the
config.pyfile and provide your values for your database URI
- Run the application:
Navigate to the directory where the main.py file is located and run
python main.py - Open your web browser and visit http://localhost:5000 to access the application.
- Create a new account or log in with your existing credentials
- Go to the transactions page and add your cryptocurrency transactions using the "Add Transaction" form. Enter the coin name, number of coins bought, and the price purchased.
- Remove transactions using the "Remove Transaction" form. Specify the coin name and the number of coins sold.
- The app will fetch live cryptocurrency prices and provide real-time updates on the current value of each transaction.
- View the list of transactions, including details such as coin name, symbol, price purchased, number of coins, time transacted, time updated, cost basis, current value, and equity.
- The portfolio worth and total equity for the entire portfolio will be displayed at the bottom of the transactions table.
- Stay updated with the latest cryptocurrency news by visiting the "News" section of the app. The news articles are fetched from the CoinGecko API and provide valuable insights into the cryptocurrency market.
- /main.py - The main entry point of the application. It contains the Flask app setup.
- /requirements.txt - List of Python dependencies required by the application.
- /tailwind.config.js - Configuration file for Tailwind CSS.
- /README.md - The project's README file.
- /package.json - Configuration file for npm and Node.js packages.
- /package-lock.json - Generated file that locks the versions of npm packages.
- /build.sh - A shell script for building the project.
- /.gitignore - Specifies which files and directories should be ignored by Git.
- /node_modules - Directory containing the installed Node.js packages.
- /tailwind-elements - Directory for custom Tailwind CSS components.
- /webapp/ - Directory containing the web application code.
- /init.py - Initialization file for the web application.
- /.env - Environment variables file (not to be committed to version control).
- /auth.py - Module handling user authentication and authorization.
- /config.py - Configuration file for the web application (not to be committed to version control)..
- /models.py - Database models and schema definitions.
- /views.py - Contains the route handlers and views.
- /static/ - Directory for static files (CSS, JavaScript, etc.).
- /static/css/ - Directory for CSS files.
- /static/css/dist/ - Directory for compiled CSS files.
- /static/css/dist/output.css - Compiled CSS file for the project.
- /static/src/ - Directory for source CSS and JavaScript files.
- /static/src/input.css - Example source CSS file.
- /static/scripts/ - Directory for JavaScript files.
- /static/scripts/index.js - Example JavaScript file.
- /static/scripts/alert-dismiss.js - JavaScript file for dismissing alerts.
- /static/main.css - Example main CSS file.
- templates/ - Directory for HTML templates.
- /templates/about.html - Example About page template.
- /templates/base.html - Base template used as the layout for other templates.
- /templates/landing.html - Example landing page template.
- /templates/login.html - Login page template.
- /templates/home.html - Home page template.
- /templates/news.html - News page template.
- /templates/sign_up.html - Sign up page template.
- /templates/transactions.html - Transactions page template.
- /templates/reset_password.html - Reset password page template.
- /templates/reset_password_request.html - New password request page template.
- /templates/error.html - Error page template.
No known bugs at this time.
Contributions to the Portfolio Tracker project are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. You can also contact us through our email
Tijani Saheed Olalekan - Github / Twitter / Linkedin Timilehin Olusa - Github / Twitter / Linkedin Abdulkareem Abdulquddus Olayinka - Github / Twitter / Linkedin
Public Domain. No copy write protection.