RateMyCourses is a web application built with Django to serve as a platform for students to see and create reviews about university courses.
Knowing choosing the right course in college is difficult, RateMyCourses aims to help students find their best-fit courses by reading reviews and advice from past students.
Key features of RateMyCourses project includes:
- Django-based web application for reading and making reviews
- Designed database with one-to-many relationships using ORMs and PostgreSQL.
- Integration with OpenAI API for crafting high-quality summary from course reviews.
- Develop star-rating system on multiple aspects of a course: quality, grading, and difficulty.
- Support profanity detection to obtain comments of highest quality
- Support Google OAuth/login/logout/registration system to validate users
- Deployed with Docker: Full version.
- Clone the repository or download the source code.
git clone https://github.com/lvhoaa/RateMyCourses.git
- Create a virtual environment (optional but recommended).
python3 -m venv myenv
- Activate the virtual environment.
- On Linux/macOS:
source myenv/bin/activate
- On Windows:
myenv\Scripts\activate
- Install the dependencies.
pip install -r requirements.txt
- Perform any additional setup steps required, such as setting up a database or configuring environment variables.
To run the RateMyCourses server, follow these steps:
-
Make sure your virtual environment is activated.
-
Apply database migrations.
python manage.py migrate
-
Run the development server.
python manage.py runserver
-
Open a web browser and visit http://localhost:8000 to access the application.
-
Read course reviews and make high-quality ratings
-
The RateMyCourse project leverages the OpenAI API for summarizing course comments. To use the OpenAI API, you need to obtain an API key from OpenAI and configure it in the project.
-
Obtain an API key from OpenAI by following their documentation.
-
Configure the API key in the project's main/chatgpt.py file.
- Contributions to this project are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request. For major changes, please discuss them first in the project's issue tracker.
- This project is licensed under the MIT License. You can find the full license text in the LICENSE file.