Real-time crypto trading dashboard with a React + TypeScript frontend and a Node.js + Express backend.
Important: backend market data is mock/simulated (deterministic feed) for this assessment.
This project is a real-time cryptocurrency dashboard built for the frontend/fullstack assessment. It provides a live market view for curated tickers, a protected market workspace with candlestick charts and interval switching, and a protected alerts page for managing price alerts.
The frontend is built with React, TypeScript, Redux Toolkit, React Router, and Socket.IO client. The backend is built with Express, TypeScript, JWT-based mock authentication, REST endpoints, and Socket.IO for real-time quote and candle updates.
- app: React frontend (Vite, Redux Toolkit, Socket.IO client, Chart.js)
- server: Express backend (REST + Socket.IO, mock auth, in-memory alerts)
- docker-compose.yml: deployment for separate frontend and backend images
- Node.js 20+
- npm 10+
In one terminal:
cd server
npm installIn another terminal:
cd app
npm installcd server
npm run devBackend runs at http://localhost:5000.
cd app
npm run devFrontend runs at http://localhost:5173.
The repository includes:
- app/Dockerfile
- server/Dockerfile
- docker-compose.yml
docker compose up --build- Frontend: http://localhost:8080
- Backend API: http://localhost:5000
- Health check: http://localhost:5000/api/health
docker compose downcd app
npm testCurrent frontend unit test includes format utilities in app/src/tests/unit.
cd server
npm testCurrent backend unit tests include:
- market validation logic
- alerts service behavior
cd app
npm run coveragecd server
npm run coverageVitest prints coverage summary in terminal and writes a coverage report folder.
- Backend uses mocked authentication and in-memory alert storage.
- Market feed is simulated for deterministic behavior during assessment.
- Alerts are scoped by authenticated user token.