I built a Django project that allows users to manage their cryptocurrency portfolios by utilizing API calls to the CoinGecko cryptocurrency API. This application was built with a TDD (Test Driven Approach), The following features are implemented:
- Users can sign up, log in, and log out of the system.
- Passwords are securely stored and hashed using Django's built-in authentication system.
- Users can invite other users to join the platform using a referral link
- Referral links are tracked and the referrer receives a bonus when a new user signs up using their link
- Users can Sell or delete cryptocurrencies to their wallet
- Each cryptocurrency has a name, current price, and quantity which the user can add to their portfolio
- Users can see a detail view of their portfolio, which shows the value of each cryptocurrency in their wallet and the total value of their portfolio
- Users can search for new Cryptocurrencies to add to their portfolio
- Users can View their Previous Holdings
- The homepage shows the 24-hour price and percentage change of the top 10 ranked cryptocurrencies
- It also displays the 24-hour price and percentage change of the currencies
- Clone the repository:
git clone https://github.com/DonGuillotine/django-crypto-portfolio
- Install a virtual environment
pip install virtualenv
(If you don't have one) - Create a virtual environment
virtualenv env
- To Activate the virtual environment
cd Scripts
then typeactivate
to activate the virtual environment. Finally change directory back to the project root withcd ..
- Install the required packages:
pip install -r requirements.txt
- Apply database migrations:
python manage.py migrate
- Create a Superuser:
python manage.py createsuperuser
- Change Directory
cd crypto_portfolio
- In the
settings.py
changeSECRET_KEY = config('SECRET_KEY')
toSECRET_KEY = "ANY-RANDOM-KEY"
- Run the server:
python manage.py runserver
- Open your web browser and go to
http://localhost:8000
- Register for an account or log in if you already have one
- Add cryptocurrencies to your wallet and track your portfolio value
- Invite other users to join the platform using your referral link