A web application to track real-time cryptocurrency prices, manage a personal portfolio, and maintain a watchlist of favorite coins.
CryptoTrack is a web application that allows users to track real-time cryptocurrency prices, manage their portfolio, and maintain a watchlist. Users can register, log in, add/remove coins to their portfolio or watchlist, and export their portfolio data as PDF or CSV reports. This project was developed as part of an internship at Ultimez Technology Pvt Ltd.
The application is deployed and publicly accessible:
- Frontend (Vercel):
https://cryptotrack-ultimez.vercel.app/
- Backend (Render):
https://cryptotrack-rhun.onrender.com
Note: The backend is hosted on a free Render instance, so the initial server response might be slow as the instance "wakes up" from a sleep state.
- User authentication (register, login, logout)
- Real-time cryptocurrency prices (via CoinGecko API)
- Search cryptocurrency
- Add/remove coins to portfolio and watchlist
- Portfolio performance analytics (profit/loss, allocation chart, top gainers, top losers)
- Export your portfolio report in both PDF and CSV formats.
- View portfolio values in different fiat currencies (via Frankfurter API)
- Dark mode support with theme persistence
The project is built with the MERN stack and other modern technologies:
- Frontend: React, Tailwind CSS
- Backend: Node.js, Express.js
- Database: MongoDB (with Mongoose)
- Authentication: JWT, Passport.js
- APIs: CoinGecko (crypto data), Frankfurter (currency conversion)
- Key Libraries:
axios
: For making API requests.recharts
: For creating pie chart and bar chart.framer-motion
: For UI animations.jspdf
&jspdf-autotable
: For generating PDF reports.React-toastify
: For alerts.
View portfolio summary, allocation charts, and top gainers/losers. Manage your favorite coins. Toggle between light and dark themes with persistent preference. Downloadable portfolio report in PDF format. Downloadable portfolio report in CSV format.
Follow these instructions to set up and run the project locally on your machine.
- Node.js (v18 or later recommended)
- Git
- MongoDB Community Server
git clone https://github.com/JoyM268/CryptoTrack.git
cd CryptoTrack
Navigate to the server directory and install dependencies.
cd Server
npm install
- Download and install MongoDB Community Server if you haven't already.
- Start the MongoDB service on your machine. On most systems, you can run
mongod
in a terminal. - The backend will connect to the default local URI.
Create a .env
file in the Server
directory and add the following variables.
MONGODB_URI="mongodb://127.0.0.1:27017/cryptotrack"
PORT=3000
CLIENT="http://localhost:5173"
JWT_SECRET="YOUR_JWT_SECRET"
npm start
In a new terminal, navigate to the client directory and install dependencies.
# From the root CryptoTrack directory
cd Client
npm install
Create a .env
file in the Client
directory and add the following:
VITE_API_URL="http://localhost:3000"
npm run dev
The application should now be running at http://localhost:5173.
- Cryptocurrency data provided by CoinGecko API.
- Currency conversion powered by Frankfurter API.
For any questions or suggestions, please reach out to [email protected].