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.
BirdWatch/
├── frontend/ # React + TypeScript frontend
├── backend/
│ ├── data/ # Python data processing scripts
│ └── reddit_api/ # Node.js 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# 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| 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 |
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm run devYou can analyze specific courses using:
cd backend/data
python course_details_analyzer.py --course-codes CS101 BU111 PS262 --limit 50| Parameter | Description | Default |
|---|---|---|
| --course-codes | Courses to analyze | Required |
| --limit | Max threads per course | 25 |
| --output-dir | Output directory | processed/course_details |
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
-
Frontend:
- React
- TypeScript
- Tailwind CSS
- Vite
-
Backend:
- Node.js
- Express
- Python
- NLTK (Natural Language Processing)
- VADER Sentiment Analysis
Created by Spencer Kelly