|
Status: Design / Development
We currently have not designed the content access. We are working to define the navigational aspects of the repository and integration of views into ATutor. Once this is implemented, we will begin to consider how content will be added to a repository.
Introduction
This document outlines development of a content repository module. I am open to any feedback or suggestions regarding requirements, features, or implementation details.
During development we are keeping our module's data layer in a separate database.
Requirements
We would like to keep the initial requirement set small and then incrementally add features. Below is what we are starting with
- Administrators have read / write / create / delete permission for repositories
- Public, Private, Protected will work identical to the way courses function
- Instructors are 'subscribed' to repositories
- While viewing a repository, an instructor may copy content from the repository into one of his/her courses
- Repositories are read only for instructors
- Repositories are not visible to students at all
Data Layer
In our data layer implementation, we have looked at columns of the following ATutor database tables to guide us.
- at_courses
- at_enrollment
- at_content
We now have the following tables / columns
- repository
- repositoryid
- access
- created_date
- title
- description
- icon
- repository_enrollment
- repository_enrollmentid
- member_id
- repositoryid
- repository_content
- repository_contentid
- repositoryid
- content_parent_id
- ordering
- last_modified
- formatting
- content_path
- title
- text
View Layer
The view is what the user can interact with. Currently we have the following views to support
Admin User
- Home Tab View
- Add new tab: Repository
- Add new section in main content area:: Repositories: Create Repository Subscribe Users
- Repository Tab View (new)
- *# Add similar view that Coruses displays.
- *## Results found
- Search box
- Table with the following columns: Title, Access, Created, Subscribed
- Radiobuttons for each row of the table with actions for View, Edit, Backups, and Delete displayed below the table
Implementation Details
POG
We are using PHP Object Generator (aka POG) to generate database wrappers. During the first couple of implementation iterations, we will only work with wrappers for PHP 5.1 and use the native PDO api. As the module matures, we will try to support PHP 4 by generating those wrappers as well. To get an idea of how to work with POG, follow this link and click on the the submit button. An option to download a zip file with generated code is presented.
PureMVC
PureMVC is a model view controller framework. It is originally developed for Adobe ActionScript and has recently been port to several languages including C#, Java, and PHP. We are still considering to use PureMVC framework for our module development. The port is currently in alpha and there are few precedents available for its use. In my experience (with Flash development) it simplifies and speeds development, especially when more than one developer is involved.
PureMVC PHP Website
About Us
The company sponsoring this effort is LateNiteLabs. More information about the company can be found at latenitelabs.com. We are currently developing a virtual chemistry lab implemented in Flash and Flex.
|
hia, this looks exiting! I'm afraid I can't help you much, but for your question about last_cid, it's purpose must be to log the last content page (content id / cid) a user visited, so this user can continue from that page the next time he/she logs in.
it should be safe to ignore when it comes to dealing with repositories.