A modern, beautiful Rate My Professor application specifically designed for Whitworth University students. Built with React, TypeScript, and styled with Whitworth University's official colors and the Pirates theme.
- π Beautiful Home Page - Engaging hero section with animated pirate ship and Whitworth branding
- π Professor Search - Find professors by name, department, or course
- β Detailed Reviews - Comprehensive professor profiles with ratings, difficulty, and student feedback
- π Review System - Easy-to-use form for submitting professor reviews
- π± Responsive Design - Works perfectly on desktop, tablet, and mobile devices
- π¨ Whitworth Branding - Official university colors and Pirates theme throughout
-
Whitworth University Colors:
- Navy Blue (#1e3a8a)
- Blue (#3b82f6)
- Light Blue (#60a5fa)
- Gold (#f59e0b)
- Orange (#ea580c)
-
Pirates Theme:
- Pirate ship animations
- Pirate emoji branding
- Nautical color scheme
- "PirateRate" branding
- Node.js (version 14 or higher)
- npm or yarn
-
Clone the repository:
git clone <repository-url> cd ratemyprofessor
-
Install dependencies:
npm install
-
Start the development server:
npm start
-
Open your browser: Navigate to
http://localhost:3000to view the application.
src/
βββ components/ # Reusable UI components
β βββ Header.tsx # Navigation header with logo
β βββ Header.css # Header styling
βββ pages/ # Main application pages
β βββ Home.tsx # Landing page with hero section
β βββ Home.css # Home page styling
β βββ ProfessorList.tsx # Professor search and listing
β βββ ProfessorList.css # Professor list styling
β βββ ProfessorDetail.tsx # Individual professor page
β βββ ProfessorDetail.css # Professor detail styling
β βββ AddReview.tsx # Review submission form
β βββ AddReview.css # Review form styling
βββ App.tsx # Main application component
βββ App.css # App-level styling
βββ index.tsx # Application entry point
βββ index.css # Global styles and CSS variables
- React 18 - Modern React with hooks and functional components
- TypeScript - Type-safe JavaScript development
- React Router - Client-side routing
- Lucide React - Beautiful, customizable icons
- CSS3 - Custom styling with CSS variables and modern features
- Hero section with animated pirate ship
- Feature highlights
- Statistics showcase
- Call-to-action sections
- Search functionality
- Department filtering
- Professor cards with ratings
- Responsive grid layout
- Detailed professor information
- Tabbed interface (Overview/Reviews)
- Rating breakdowns
- Student reviews with helpful voting
- Comprehensive review form
- Star rating system
- Difficulty meter
- Form validation
- Character counting
- Real-time search across professor names, departments, and courses
- Department-based filtering
- Responsive search interface
- 5-star rating system with visual feedback
- Difficulty level assessment (1-5 scale)
- "Would take again" percentage
- Overall rating calculations
- Anonymous review submissions
- Helpful/not helpful voting on reviews
- Character limits and validation
- Rich text formatting
- Mobile-first approach
- Tablet and desktop optimizations
- Touch-friendly interfaces
- Adaptive layouts
npm start- Runs the app in development modenpm build- Builds the app for productionnpm test- Launches the test runnernpm eject- Ejects from Create React App (one-way operation)
- TypeScript for type safety
- Functional components with hooks
- CSS modules for component styling
- Consistent naming conventions
- Responsive design patterns
The application uses CSS custom properties for easy color customization. Main colors are defined in src/index.css:
:root {
--whitworth-navy: #1e3a8a;
--whitworth-blue: #3b82f6;
--whitworth-light-blue: #60a5fa;
--whitworth-gold: #f59e0b;
--whitworth-orange: #ea580c;
}- All components have their own CSS files
- Global styles are in
src/index.css - Utility classes are available for common patterns
- Responsive breakpoints are consistent throughout
npm run buildThis creates an optimized production build in the build folder.
- Netlify - Drag and drop the
buildfolder - Vercel - Connect your GitHub repository
- GitHub Pages - Use the
gh-pagespackage - AWS S3 - Upload the
buildfolder to an S3 bucket
- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Whitworth University - For the inspiration and branding guidelines
- React Community - For the amazing ecosystem and tools
- Lucide - For the beautiful icon set
- Create React App - For the excellent development setup
For support, email [email protected] or create an issue in the repository.
π΄ββ οΈ Go Pirates! - Built with β€οΈ for the Whitworth University community.