A full-stack web application for tracking SWE stocks with end-of-day market data. Built with Next.js, Express.js, and Docker.
- Node.js 20+
- Docker and Docker Compose
- MongoDB database
- Alpha Vantage API key
- Redis API Key/Token
-
Clone the repository
git clone https://github.com/usergaia/Tickr.git cd Tickr
-
Install dependencies
# Server dependencies cd server npm install # Client dependencies cd client npm install
-
Set up environment variables (see Environment Variables)
-
Run with Docker Compose
docker-compose up --build
-
Or run individually
# Terminal 1 - Server cd server npm run dev # Terminal 2 - Client cd client npm run dev
Create a .env
file in the server
directory:
MongoDB_URI=your_mongodb_connection_string
AV_API=your_alpha_vantage_api_key
UPSTASH_REDIS_REST_URL=your_upstash_redis_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_redis_token
Create a .env
file in the client
directory:
NEXT_PUBLIC_API_URL=http://localhost:1000
For production deployment, set NEXT_PUBLIC_API_URL
to your deployed server URL.
- Client: http://localhost:3000
- Server: http://localhost:1000
- API Health Check: http://localhost:1000/health
- Client: http://localhost:3000
- Server: http://localhost:1000
Server:
npm run dev # Start development server
npm run build # Build for production
npm start # Start production server
Client:
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLint
- π End-of-Day Stock Data - Track software and technology stocks with daily market data
- π Top Gainers - View latest stocks who had the highest gains
- π° Highest Close Prices - Monitor highest performing stocks
- β‘ Fast Performance - Redis caching and client-side optimization
- π³ Docker Support - Easy deployment and development
- π Auto-refresh - Daily data updates with caching [wip]
Frontend:
- Next.js 15.5.2 with Turbopack
- React 19
- TypeScript
- Tailwind CSS
- Chart.js for data visualization
Backend:
- Express.js
- TypeScript
- MongoDB with Mongoose
- Redis (Upstash) for caching
- Alpha Vantage API integration
DevOps:
- Docker & Docker Compose
- GitHub Actions CI/CD
- Vercel (client deployment)
- Render (server deployment)
GET /stocks
- Get all tracked stocksGET /stocks/:symbol
- Get specific stock dataGET /health
- Health check endpoint
{
"_id": "string",
"symbol": "AAPL",
"historical": [
{
"date": "2025-09-12",
"open": 149.50,
"high": 151.00,
"low": 148.75,
"close": 150.25,
"volume": 50000000
}
],
"stock_name": "Apple Inc",
"name": "Apple",
"lastRefreshed": "2025-09-11",
"timezone": "US/Eastern"
}
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Alpha Vantage API Documentation - Complete API reference and examples
- MongoDB Atlas - Free MongoDB hosting
- Upstash Redis - Serverless Redis for caching
- Vercel - Deploy Next.js applications
- Render - Deploy Node.js backend services (Might take a while to load due to Render free plan restriction)
- Docker Documentation - Containerization guide
- Next.js Documentation - React framework documentation
- Tailwind CSS - Utility-first CSS framework
- Insomnia - Powerful API testing and design tool
- Thunder Client - VS Code API testing extension
This project is licensed under the MIT License - see the LICENSE file for details.