CryptoNavigator is a web application designed to provide users with tools for navigating and analyzing cryptocurrency markets. This project leverages multiple modern web technologies to deliver a rich user experience for tracking market trends, viewing price charts, and managing portfolios.
- Cryptocurrency market overview
- Interactive charts and historical data
- Portfolio management
- Secure user authentication
- Integrated NFT management
- Token tracking and spending analytics
- Frontend: React.js, TypeScript
- Backend: Node.js, Express
- Database: MongoDB
- State Management: Redux
- Styling: CSS, Bootstrap, CSS Modules
/components
: Contains reusable UI components such asBridgePage
,Header
,Navbar
,PortfolioPage
, and various subcomponents for managing tokens, transactions, NFTs, and settings./api
: Contains modules that interact with external cryptocurrency services like Alchemy, CoinGecko, and CoinMarketCap./context
: Implements the Web3 context to manage blockchain interactions and user session data./redux
: Includes reducers, store configuration, and selectors for managing portfolio state./public
: Contains static assets such as icons and the main HTML template.
/src
: Contains server-side code for handling requests, managing data, and serving API endpoints.- Controllers: Handle incoming API requests (e.g.,
coinController.js
). - Routes: Define API routes (e.g.,
coinRoutes.js
,tokenRoutes.js
). - Models: Define MongoDB schemas for
Coin
andTokens
. - Services: Contain business logic for data processing (
coinService.js
). - Utils: Include utility functions like logging (
logger.js
). - Tasks: Handle database setup and background tasks (
setupDatabase.js
,startDatabaseTasks.js
).
- Controllers: Handle incoming API requests (e.g.,
/scripts
: Scripts for initial data setup and periodic updates (e.g.,createInitialCoinList.js
,updateCoinPrices.js
).
- Node.js
- Yarn or npm
-
Clone the repository:
git clone https://github.com/alexmb15/CryptoNavigator.git
-
Navigate to the project directory:
cd CryptoNavigator
-
Install dependencies for both frontend and backend:
yarn install cd backend yarn install cd ..
-
Set up environment variables:
- Create a
.env
file in both the root andbackend
directories, and fill in the required values using.env.example
as a template.
- Create a
To start the development server for the frontend:
yarn start
To start the backend server:
cd backend
yarn start
The application should now be running on http://localhost:3000 for the frontend, and the backend API will be available on http://localhost:53080.
Contributions are welcome! Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.