A collaborative platform where students can rate and review professors and schools. Built with Next.js, this app provides an easy-to-use interface for students to share their experiences and help others choose courses.
We are no longer maintaining this project.
This project was created by PowerTeddy and Learnmore_smart over 6 months of hard work. As our first major project, it has a really messy UI, and the features are not well organized. We truly believe that the future of education must be transparent, where students can leave unharmful feedback without feeling shame.
Personal Story: A teacher discovered the website and informed the school, which then cancelled Learnmore_Smart's graduation speech.
We also tried to create an AstrArena, where we hoped to combine games and learning together. Learnmore_Smart crafted all the images, and it had a Clash Royale feeling. However, we discontinued it because the game was impossible and the logic was not aligning with a teacher rating platform - our first project is a mess.
If you can, please help and build it better. Contributions are welcome!
- Student Ratings and Reviews: Rate professors and schools based on teaching quality, ease, and overall experience.
- Detailed Profiles: Each professor and school profile displays average ratings, reviews, and course details.
- Search Functionality: Easily search for professors or schools by name or department.
- User Authentication: Secure user login via Google OAuth to leave ratings and prevent spam.
- Real-time Notifications: Get notified about replies and updates.
- Forum Integration: SSO with Discourse for community discussions.
- AI-Powered Moderation: Uses Google Gemini AI for content moderation.
- Gamification: Earn badges and points for contributions.
- AstrArena: Interactive game feature for engagement.
- Admin Panel: Manage users, comments, and reports.
- Frontend: Next.js 15, React 18, Tailwind CSS
- Backend: Next.js API Routes, MongoDB with Mongoose
- Authentication: NextAuth.js with Google OAuth
- AI: Google Generative AI (Gemini)
- Real-time: Socket.io
- Deployment: Cloudflare Workers
- Styling: CSS Modules, Framer Motion for animations
- Node.js 18+
- MongoDB database
- Google Cloud account for OAuth and Gemini AI
- Cloudflare account for deployment
-
Clone the repository:
git clone https://github.com/Learnmore-smart/RateMinistereSite.git cd RateMinistereSite -
Install dependencies:
npm install
-
Copy the environment variables:
cp .env.example .env.local
-
Fill in your environment variables in
.env.local:NEXTAUTH_URL: Your app's URL (e.g., http://localhost:3000 for development)NEXTAUTH_SECRET: A random secret stringMONGODB_URI: Your MongoDB connection stringGOOGLE_CLIENT_ID: Google OAuth client IDGOOGLE_CLIENT_SECRET: Google OAuth client secretGEMINI_API_KEY: Google Gemini AI API keyNotAPassword: Custom password for beta featuressso: Secret key for Discourse SSOdiscourseSsoUrl: Discourse SSO URL
-
Set up MongoDB and create the necessary collections (they will be created automatically on first run).
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
- Sign up/login with Google
- Search for schools or professors
- Leave ratings and reviews
- Participate in the forum
- Earn badges and points
- Access the admin panel at
/admin - Manage users, comments, and reports
- Moderate content
- Use
npm run buildto build for production - Use
npm run startto start the production server - Use
npm run lintto check for code issues
- Install Wrangler:
npm install -g wrangler - Authenticate:
wrangler auth login - Deploy:
npm run deploy:worker
- Connect your GitHub repo to Vercel
- Set environment variables in Vercel dashboard
- Deploy
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/your-feature - Submit a pull request
- Users can't delete their comments: Critical functionality bug preventing users from managing their own content.
- UI is very unfriendly with all colors: Poor color scheme and design makes the interface difficult to use.
- Home page is not professional: The main landing page lacks a professional appearance and user experience.
- ESLint Warnings: Many React Hook dependency warnings need to be fixed for better performance and to avoid potential bugs.
- Image Optimization: Replace
<img>tags with Next.js<Image>component for better performance. - Environment Variables: Ensure all sensitive data is properly secured and not hardcoded.
- Error Handling: Improve error handling in API routes and components.
- Testing: Add unit and integration tests.
- Accessibility: Improve accessibility features (ARIA labels, keyboard navigation).
- Performance: Optimize database queries and implement caching.
- Internationalization: Expand support for more languages beyond English and French.
- Mobile Responsiveness: Fine-tune mobile UI/UX.
- Documentation: Add API documentation and component stories.
- Fix missing dependencies in useEffect/useCallback hooks across multiple files.
- Replace all
<img>tags with<Image>from next/image. - Add proper error boundaries.
- Implement proper loading states.
- Add form validation.
- Fix any potential security vulnerabilities.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
The Apache License 2.0 is a permissive open source license that allows you to:
- ✅ Use the software for any purpose
- ✅ Modify and distribute the software
- ✅ Use patents granted by contributors
- ✅ Include the software in proprietary products
Requirements:
- Include a copy of the license in any redistribution
- State any changes made to the original files
- Include copyright and license notices in derivative works
For the full license text, please see the LICENSE file in the root directory.
For support, please open an issue on GitHub or contact the maintainers.
- Built with Next.js and the open-source community
- Icons from Phosphor Icons
- Animations with Framer Motion