Sakai provides very useful tools, both for students and professors, in the classroom. This project seeks to leverage those tools, and the wide use of mobile technology by integrating both pieces together in an easy to use application.
In order to be granted access to the DukeSakai Mobile App repository, please contact Prof. Ric Telford (ric.telford@duke.edu) at Duke University, Center for Mobile Development. Once you have access to the repository, these instructions will get you a copy of the project up and running on your local machine for development and testing purposes. The project does not have any prerequisites, other than it must be run on Xcode 10.2 or later, with Swift 4.2 or later.
See deployment for notes on how to deploy the project on a live system.
It is recommended that, if you want to clone this project, you use the HTTPs option, the steps to do this successfully are the following:
-
Open the terminal.
-
Change the current working directory to the location where you want the cloned directory to be made (make sure it is a git repository).
-
Type the following command, and run it.
$ git clone https://gitlab.oit.duke.edu/MobileCenter/dukesakai.gitNote: you may be prompted to enter your GitLab username and password.
-
Your local clone will be created. You can now start working on this project!
If you choose to use the SSH option
-
Open the terminal.
-
Change the current working directory to the location where you want the cloned directory to be made (make sure it is a git repository).
-
Make sure you have added an SSH Key to your GitLab account, and if you have not done this already, access the GitLab Guide and follow their steps to setup your SSH Key Pair.
-
Once you have verified step 3, type and run the following command.
$ git clone git@gitlab.oit.duke.edu:MobileCenter/dukesakai.gitNote: here you may be prompted for a password, and must provide your SSH key passphrase.
-
Your local clone will be created. You can now start working on this project!
Another option to get this project running on your local computer is to download the entire package from GitLab, this can be achieved by clicking on the "Cloud Download" icon to the right of the project screen. There you can choose the type of compressed file you would like to download.
Once you have downloaded the project, make sure to extract all files and placed them into your desired directory.
To run this project you can choose between the Xcode simulators provided, or run it on your own device. Follow the same steps you would when running any other App. The App will run on any device with iOS 10 or above.
The application is, at the moment, a read-only type of application, meaning that all data available on Sakai web can be displayed in the app as well, but no data can be transferred, or uploaded by the user.
Main App Navigation Path:
Log in --> Course Selection OR Calendar View
If a course is selected, there are different screens which display different information about it, and the main four are the following:
- Announcement
- GradeBook
- Announcement
- Resource
If the calendar is selected, it will display an interactive calendar view, with the events registered on Sakai in the user's account.
More in-depth information about these views and navigation inside the app can be found in the user guide section.
This app has been published to the Duke University App Store, and can be
downloaded by Duke affiliated users from there. If you wish to upload it to a
similar App Store, you will need the .app file for DukeSakai. This file can be
generated following these steps:
-
Open the terminal.
-
Use the
cdcommand to change to your project directory. -
Use the
lscommand, and verify that the folder containsDukeSakai(folder) andDukeSakai.xcodeproj, now you are in the right place. -
Type and run the following command.
xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED="NO" -
Once this finishes compiling, you can find the
.appfile by going tobuild/Release-iphoneos/folder. -
Upload the resulting
.appfile.
https://sakai.duke.edu/direct/content/site/{siteId}.json
https://sakai.duke.edu/direct/announcement/site/{siteId}.json?n=100&d=3000
get recent 3000 days 100 announcements
https://sakai.duke.edu/direct/assignment/site/{siteId}.json
get the grade item list:
https://sakai.duke.edu/direct/gradebook/site/{siteId}.json
for each grade item detail:
https://sakai.duke.edu/direct/gradebook/item/{siteId}/{item_name}.json
https://sakai.duke.edu/direct/calendar/my.json?firstDate={start_date}&lastDate={end_date}
get all calendar event between start_date and end_date
We used an open source project as the base of our calendar view. The project can be found in https://github.com/LitterL/CalendarDemo
Refer to Document User Guide
- Andres Hernandez Guerra
- Niral Shah
- Zhe Mao
- Yuxiang Huang
- Chengzhang Ma