Online PASS

Source Code

Project Overview


Online PASS Demo

The University of the South Pacific (USP) provijdes a robust technological ecosystem for learning, including Student Online Services (SOLS), Information Technology Services (ITS), Moodle integration, and Sem 0 GPT. USP also offers programs like PASS (peer aided study sessions) where students collaborate under the guidance of high-achieving peers.

The Problem


There are challenges with managing various technologies for PASS leaders and ensuring student participation due to the need for Viber and Zoom installations, issues with Viber file storage, and time limitations on Zoom calls. These issues affect the efficiency of the system for both leaders and students.

The Solution


Online PASS! A real-time, full-stack progressive web application designed to streamline and enhance PASS. It will consolidate features from Viber and Zoom, offering functionalities such as chat rooms, audio/video calls, session schedules, worksheet submissions, and resource access. OPASS also boasts a plethora of badges to earn and a leader board to showcase the best students and leaders.

Technologies Used


Features


Chat - students can send, edit, delete and reply to other messages.

Polls - students can add polls with options and course members can vote.

Submissions - students can submit worksheets for leaders to check.

Resources - leaders can share resources link worksheets and site links.

Schedule - students can view the sessions and leaders can manage them.

Attendance - leaders can request to mark students as present for sessions.

Announcements - admins and leaders can send announcements to courses.

Notifications - alerts will be sent out to students on certain events.

Achievements - students can earn badges by completing certain tasks.

Leaderboards - list of users with high engagement and contribution.

Dashboard - admins and leaders have access to a powerful dashboard.

Feedback Friday - students can share their experiences or report bugs.

Turbo Keys - internal app and course navigation links have shortcuts keys.

Architecture


The PASS web app adopts a 3-layer MVC architecture, leveraging modern and open-source technologies. In the model layer, Prisma serves as the ORM for data management, interfacing with a PostgreSQL database hosted on AWS RDS, while AWS S3 handles object storage. React JS is utilized in the view layer for creating a dynamic user interface, with Next UI and Shadcn UI providing accessible and customizable components. For interconnection, Next JS acts as the framework, utilizing its built-in server to handle API functionalities, while Supabase serves as the real-time server, offering services such as web sockets for enhanced interactivity.

REST

Queries

Uploads

Publishes events

Websockets

React UI

Next.js API routes

Prisma ORM

RDS Postgres

S3 bucket

Supabase

Other clients

Data Models


This schema outlines the structure of OPASS where every Course related model roots back up to the Member. The Member model was chosen to be the main entity as deleting it will delete every model that has a relationship to it in a cascading manner. This prevents there being any ghost entries laying in the database after a Member is removed from a Course.

Courses


Each course runs sessions with attendance, posts announcements that become notifications, and enrolls members.

1:N

1:N

1:N

1:N

1:N

Course

Session

Attendance

Announcement

Notification

Member

People


A user owns their member profile, gives feedback, earns achievements from badges, and receives notifications.

1:1

1:N

1:N

1:N

1:N

User

Member

Feedback

Achievement

Badge

Notification

Engagement


Members drive everything interactive. They create polls with votable options, cast votes, send messages, and share resources.

1:N

1:N

1:N

1:N

1:N

1:N

Member

Poll

Option

Vote

Message

Resource

All in all, these models provide the foundation for a robust system supporting various educational and collaborative activities.