Wiki › Project

Pre3

Project · course project · 2023–2024

Pre3 is a course-management system built as a team project at Chiang Mai University. It helps students plan their courses and track their progress, and helps lecturers and administrators manage courses, students and staff.

Roles

Every user has a role, and each role grants a set of permissions:

RoleWhat they can do
GuestBrowse without logging in
StudentManage their courses, track progress, and plan ahead with a visual tree of course prerequisites
LecturerManage their courses and follow their students' progress
AdminManage the whole system

Technology

Back end
Flask with Jinja2 templates, SQLAlchemy and PostgreSQL, served by Gunicorn, with Flask-Login and Flask-WTF.
Front end
Bootstrap 5 and the SB Admin 2 dashboard template, with JavaScript for the prerequisite tree and other interactive pages.
Course data
read from Google Sheets through its API and converted with SheetJS. Sign-in uses Google single sign-on.
Running it
Docker, driven by a Makefile.

The course tree echoes his earlier Prerequisite tree tool.

See also

In the knowledge graph

Pre3 and the 15 things it is linked to. Open any dot for its page, or explore it in the full graph.

When
2023202420252026
Oct 2023 – Mar 2024 · 126 commits

As data

Everything on this page is read from triples in the knowledge graph. These are the 32 it states about Pre3, and 2 more its ontology implies; the console runs SPARQL over the whole graph, here in your browser.

Download
@prefix id: <https://ask.chaipat.cc/id/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix cj: <https://ask.chaipat.cc/ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

id:Pre3
    a cj:Project ;
    rdfs:label "Pre3" ;
    cj:description "Course management system that helps students plan courses and track progress, and helps faculty manage them." ;
    cj:context id:CMU ;
    cj:repository "https://github.com/AppleBoiy/pre3"^^xsd:anyURI ;
    cj:firstCommit "2023-10-14"^^xsd:date ;
    cj:lastCommit "2024-03-08"^^xsd:date ;
    cj:commitCount 126 ;
    cj:kind "course project" ;
    cj:license "MIT" ;
    cj:theme id:ThemeWeb ;
    cj:uses id:Python ,
            id:HTMLCSS ,
            id:JavaScript ,
            id:SQLAlchemy ,
            id:Gunicorn ,
            id:Jinja ,
            id:Bootstrap ,
            id:Make ;
    cj:tier 2 ;
    cj:integrates id:GoogleSheetsAPI ;
    cj:relatedTo id:PrerequisiteTree ;
    cj:mentions id:Docker , id:Flask , id:PostgreSQL ;
    cj:article "https://ask.chaipat.cc/wiki/Pre3"^^xsd:anyURI ;
    cj:activeIn id:Y2023 , id:Y2024 ;
    cj:activity _:b127 ,
                _:b128 ,
                _:b129 ,
                _:b130 .