Skip to content

A web dashboard for tracking end-of-day stock prices. Built with MERN stack, and Docker. (It might take a while to load due to render free sub restrictions)

License

Notifications You must be signed in to change notification settings

usergaia/Tickr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Tickr | Stock Tracker

A full-stack web application for tracking SWE stocks with end-of-day market data. Built with Next.js, Express.js, and Docker.

Table of Contents

Installation

Prerequisites

  • Node.js 20+
  • Docker and Docker Compose
  • MongoDB database
  • Alpha Vantage API key
  • Redis API Key/Token

Local Development

  1. Clone the repository

    git clone https://github.com/usergaia/Tickr.git
    cd Tickr
  2. Install dependencies

    # Server dependencies
    cd server
    npm install
    
    # Client dependencies
    cd client
    npm install
  3. Set up environment variables (see Environment Variables)

  4. Run with Docker Compose

    docker-compose up --build
  5. Or run individually

    # Terminal 1 - Server
    cd server
    npm run dev
    
    # Terminal 2 - Client
    cd client
    npm run dev

Environment Variables

Server (.env)

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

Client (.env)

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.

Usage

Development

Docker

Available Scripts

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

Features

  • πŸ“ˆ 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]

Tech Stack

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)

API Endpoints

Stock Data

  • GET /stocks - Get all tracked stocks
  • GET /stocks/:symbol - Get specific stock data
  • GET /health - Health check endpoint

Sample Response Format

{
  "_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"
}

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Resources Used

API Documentation

Database & Caching

Deployment Platforms

  • Vercel - Deploy Next.js applications
  • Render - Deploy Node.js backend services (Might take a while to load due to Render free plan restriction)

Development Tools

API Testing

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A web dashboard for tracking end-of-day stock prices. Built with MERN stack, and Docker. (It might take a while to load due to render free sub restrictions)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages