Description

A repository of Skule academic related services. These include an exam repository, a course critique viewer (with data provided by the Department of Applied Science and Engineering) and a course commenting system.

The production environment is at http://courses.skule.ca.
The staging environment is at http://courses-dev.skule.ca.

Developers

Project Details

  • Uses Symfony 1.2 as the framework and Propel as the database ORM
  • courses is the app that houses SkuleCourses. However, to date (May 10, 2010), the ElectiveChooser project (with app name scheduler) will also be using the global libraries and models from the SkuleCourses code base.
  • Four modules constitute the front-end:
    • search: the control and view for the search mechanism
    • course: the control and view for the course detail listing, exam repository, course critique viewer, and course commenting
    • error: customized error pages (404 and 500)
    • invisible: controller for non-view related actions, such as exam submission, security string generation, etc.
  • Nine modules constitute the back-end (siteadmin):
    • admincommenting
    • admincourse: manages course and course_detail
    • adminuser
    • admindepartment
    • admindiscipline
    • adminexam: contains a custom management tool for the exam table and the physical exams, as well as a Java Applet bulk exam uploader used to import the exam CD procured by the VP Academic at the end of every semester
    • admininstructor
    • adminratingCriteria: manages rating_field (containing a list of questions used in course critique), and critique importing
    • siteadmin: the entry point
  • Global libraries (under /lib):
    • symfony: base symfony files, should not be modified
    • SwiftMailer: a third-party mailer package
    • model: Propel model classes
      • map: do not modified, generated automatically
      • om: base model classes, generated automatically
      • all other files under the directory: custom model files. Should include query methods in there if possible
    • skuleGlobalConfigHandler.php: a handler class for interpreting the skuleGlobal.yml file under /config
    • functions.class.php: a helper class containing useful functions
  • SkuleCourses specific libraries (under /apps/courses/lib):
    • businessLogic: contains logic classes for fuzzy search, export, import, etc.
    • components
    • filter: used in siteadmin
    • form: custom forms used in siteadmin
    • fusionCharts: used in course critique viewer for generating swf charts
  • Global configuration files (under /config):
    • config_handlers.yml: defines custom config handler classes
    • schema.yml: defines the database. Can be used generate the Propel models and a complementary sql script
    • skuleGlobal.yml: defines the project related (global) constants, such as passwords, notice mailing list, etc.

Database Table Details

  • enum_item: consisting of system data vital for system functionality. Each row is indexed by an id and a parent_id. The data in this table should not be lightly modified, added or deleted.
  • course: basic course data, ID'ed by the varchar course code (e.g. AER301H1)
  • course_detail: detailed course info. 1-to-1 with course
  • instructor: basic instructor data
  • department: (e.g. id=AER, descr=Institute of Aerospace Studies)
  • discipline: (e.g. id=1, descr=Engineering Science)
  • course_instructor_assoc: a many-to-many table linking courses and instructors
  • course_discipline_assoc: a many-to-many table linking courses and disciplines
  • exam: a many-to-1 table against course storing the exam information, including their physical locations
  • course_comment: users' comments on the courses
  • rating_field: contain a list of questions used in course critiques (e.g. The instructor's enthusiasm to the presentation of the course materials is…)
  • auto_course_rating: actual course critique data
  • import_mapping: maps system data types to the import file's columns. Can be used on multiple import file types
  • user: ID'ed by username and contains users of varying privileges

Development

 
projects/skulecourses.txt · Last modified: 2010/05/11 14:16 by wildabyss
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki