A web application that helps Penn State students analyze and optimize their campus meal plan spending through automated data collection, real-time analytics, and personalized recommendations.
- Automated Data Collection: Securely fetches transaction data from Penn State's dining portal
- Spending Analytics: Real-time visualization of spending patterns and trends
- Meal Plan Optimization: Personalized recommendations for maximizing meal plan value
- Multi-User Comparison: Compare spending patterns with other users
- Discount Analysis: Track savings and identify opportunities for better value
- React
- Tailwind CSS for styling
- Recharts for data visualization
- Firebase Authentication
- Express.js server for scraping and ML endpoints
- Node.js with Puppeteer for automated data collection
- Node.js (v18 or higher)
- npm or yarn
- A Penn State account
- Clone the repository
git clone https://github.com/yourusername/meal-plan-optimizer.git
cd meal-plan-optimizer- Install dependencies
npm install-
(Optional) Set up Firebase authentication and Firestore by creating a project in the Firebase console.
-
Create a
.envfile in the root directory with your Firebase config if using Firebase:
REACT_APP_FIREBASE_API_KEY=your_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id
- Start the development server
npm start- In a separate terminal, start the backend server
npm run server- Sign in with your Penn State credentials
- Enter your verification code when prompted
- Select your date range for transaction analysis
- View your personalized spending analytics and recommendations
- Compare your spending patterns with other users
- Download transaction history or view detailed reports
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
-
All user credentials are securely handled and never stored
-
Multi-factor authentication is required for data access
-
All API requests are authenticated and rate-limited
-
The React and TypeScript communities
For support, email mbm6898@psu.edu or open an issue in the repository.