Skip to content

arkdong/Pear-to-Peer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Pull Requests Branches Issues Insight


Logo

Pear-to-Peer

Pear-to-Peer is an innovative web application designed to enhance the educational experience for both teachers and students. Our platform allows teachers to easily manage assignments and facilitates a robust peer review process among students, supported by advanced AI technologies.

Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Acknowledgments

About The Project

Pear-to-Peer is an innovative web application designed to enhance the educational experience for both teachers and students. Our platform allows teachers to seamlessly manage assignments and facilitates a robust peer review process among students, supported by advanced AI technologies.

Our project is a web application that empowers teachers to elevate the quality of education they provide. Teachers can effortlessly submit assignments for their courses, and students can conveniently submit their work through the platform. Once a student submits their assignment, it is then assigned to another student for review. This peer review process is central to our platform, fostering a collaborative learning environment.

What sets our product apart is our commitment to enhancing the quality of peer reviews. Before a reviewer receives an assignment, it is processed through a Large Language Model (LLM). This advanced AI technology thoroughly examines the submitted code, identifying areas for potential improvement. It then provides the reviewer with insightful hints and guidance on what to look for during their review. This not only helps reviewers provide more constructive feedback but also aids in their own learning and understanding of the subject matter.

By leveraging cutting-edge AI, Pear-to-Peer not only streamlines assignment management but also enriches the educational experience by ensuring that peer reviews are thorough, insightful, and beneficial for all students involved. Our goal is to create a supportive educational ecosystem where both teachers and students can thrive.

(back to top)

Features

For Teachers

  • Assignment Management: Teachers can easily create, manage, and assign coursework to students.
  • Submission Tracking: Monitor student submissions and track the review process efficiently.

For Students

  • Submission Portal: Students can submit their assignments through an intuitive interface.
  • Peer Reviews: After submission, assignments are randomly assigned to other students for review.

AI-Powered Review Assistance

What sets Pear-to-Peer apart is our integration of a Large Language Model (LLM) to assist in the peer review process:

  • Automated Code Analysis: Before a student reviewer receives an assignment, our LLM analyzes the submitted code to identify potential areas of improvement.
  • Review Guidance: The LLM provides hints and suggestions to the reviewer, helping them focus on critical aspects of the code and enhancing the quality of feedback.

(back to top)

How It Works

  1. Assignment Submission: A student submits their assignment through the platform.
  2. AI Analysis: The submission is processed by our LLM, which examines the code for potential improvements.
  3. Review Assignment: The analyzed submission is then assigned to another student for review.
  4. Guided Review: The reviewing student receives the LLM's suggestions, aiding them in providing constructive feedback.
  5. Feedback Delivery: The review is sent back to the original student, helping them learn and improve their work based on peer and AI-assisted feedback.

(back to top)

Benefits

  • For Teachers: Streamlined assignment management and enhanced student engagement.
  • For Students: Improved learning outcomes through constructive peer feedback and AI-guided review processes.
  • Quality Feedback: Higher quality and more insightful reviews lead to better learning experiences.

(back to top)

TechStack

These are all the frameworks that were used to make this project.

Frontend

React Remix Figma

Backend

Flask SQLalchemy

Other

Github OpenAI Docker

(back to top)

Getting Started

This section provides instructions on setting up your project locally using Docker. Follow these simple steps to get a local copy up and running. All the necessary requirements have been installed in the docker environment.

Prerequisites

Make sure you have Docker installed on your machine. You can download and install Docker from here.

Installation

  1. Clone the repository
    git clone https://github.com/Janourid/PSE.git
  2. Navigate to the project directory
    cd PSE
  3. Build and start the Docker containers
    docker compose up --build

And that's it! The webapp should now be up and running in your Docker environment. You can access it by navigating to http://localhost in your web browser.

(back to top)

Server

Note: On the server, the nginx.conf and docker setup are slightly different to allow for SSL certification and HTTPS connection. The details of what is different can be found on the 'server' branch

Usage

This section provides an overview of how to use the website, including screenshots of key pages and instructions on navigating and utilizing various features.

Homepage

The homepage is the central hub of the website, where you can manage assignments and submissions.

Homepage


  • Assignments: On the left side, you will find the list of assignments you need to complete. Click on any assignment to start working on it or submit your work.
  • Submissions for Review: On the right side, you will see the submissions that require your review. Click on any submission to provide your feedback.
  • Courses: At the bottom of the page, there is a list of courses you have joined.
  • Navigation Bar: Use the navbar at the top of the page to navigate to different sections of the website.

Review Page

When you click on an open assignment, you will be taken to the review page. This page is designed to facilitate the review process.

Reviewpage


  • Submitted Code: On the left side, you can view the code that has been submitted and needs to be reviewed.
  • LLM Hints: In the middle, you will find hints generated by the LLM to help you write a better review.
  • Comment Section: On the right, there is a section where you can write comments for specific lines of code.

Teacher Page

The teacher page allows instructors to create new courses and assignments.

Teacherpage


  • Creating a New Course: Teachers can create new courses by filling in the necessary details and submitting the form.
  • Creating Assignments: While a course is created, assignments can be added by providing the assignment details and clicking the submit button.
  • Adding Students to the Course: The teacher can provide a .txt file with emails of students that are allowed in the course. This does not automatically enroll the students to the course, they have to do this themselves.

Edit Course Page

The edit course page allows teachers to modify course details and manage assignments.

Edit Course Page


  • Edit Course Details: Teachers can change the name of the course and update assignment details.
  • Close Assignments: The most important feature on this page is the ability to close an assignment. When an assignment is closed, no more submissions can be made, and the existing submissions will be divided among students for review.

Admin Page

The admin page is where administrators can manage all the data on the platform.

Admin Page

  • Data Management: Admins can add or remove all types of data, such as users, courses, and assignments.
  • User Permissions: Admins can change the permissions of users, allowing them to promote a user to a teacher.

By following these instructions and using the provided screenshots, you should be able to navigate and utilize the main features of the website effectively.

(back to top)

Acknowledgments

We would like to express our gratitude to the following individuals and organizations for their support and contributions to this project:

  • The template for this README
  • We used the OpenAI API to generate the feedback hints.
  • Ana, Jeniffer and the other TA's for their guidance and insightful feedback throughout the development process.
  • The UVA for their valuable resources.

(back to top)

About

Project Software Engineering Course at UvA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors