Skip to content

Flapjacck/BirdWatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BirdWatch 🦅

BirdWatch is a website that helps students find and analyze "bird courses" (easy courses) by analyzing Reddit discussions using sentiment analysis and natural language processing.

Project Structure

BirdWatch/
├── frontend/           # React + TypeScript frontend
├── backend/
│   ├── data/          # Python data processing scripts
│   └── reddit_api/    # Node.js Reddit API service

Setup Instructions

1. Reddit API Service

# Navigate to the Reddit API directory
cd backend/reddit_api

# Install dependencies
npm install

# Start the API server
npm start

# For development with auto-restart
npm run dev

2. Data Processing Pipeline

# Navigate to the data directory
cd backend/data

# Create and activate virtual environment
python -m venv venv
venv\Scripts\activate  # Windows
source venv/bin/activate  # macOS/Linux

# Install requirements
pip install -r requirements.txt

# Run the pipeline
python pipeline.py

# Run the pipeline with parameters
python pipeline.py --time-period all --limit 300 --analyze-top-courses True --top-courses-count 50

Pipeline Parameters

Parameter Description Default Options
--time-period Time period to search year hour, day, week, month, year, all
--limit Max threads to fetch 200 Any positive integer
--analyze-top-courses Analyze top courses True Flag
--top-courses-count Number of top courses 15 Any positive integer

3. Frontend Application

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

Course Analysis

You can analyze specific courses using:

cd backend/data
python course_details_analyzer.py --course-codes CS101 BU111 PS262 --limit 50

Analysis Parameters

Parameter Description Default
--course-codes Courses to analyze Required
--limit Max threads per course 25
--output-dir Output directory processed/course_details

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Tech Stack

  • Frontend:

    • React
    • TypeScript
    • Tailwind CSS
    • Vite
  • Backend:

    • Node.js
    • Express
    • Python
    • NLTK (Natural Language Processing)
    • VADER Sentiment Analysis

Author

Created by Spencer Kelly

About

Tracking the chirps that boost your GPA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published