This page provides technical information about the Odyssey web application's online help.
https://odyssey.uwaterloo.ca/overview/ - documentation about the examination management system and graduate
application system.
http://www.postgresql.org/docs/current/interactive/ - documentation for the
version of Postgres we are using. Section II on SQL, Chapter V.40 on
PL/pgSQL, and Chapter VI.I. on SQL Commands are likely to be especially
useful.
https://docs.python.org/3.6/ - documentation for the (major) version of
Python we are using.
OdysseyIntroduction - notes from initial instruction into Odyssey.
Odyssey's live (production) implementation is located on the linux.cs.uwaterloo.ca server at this path:
/.software/regional/odyssey-3_apache/data/vhosts/odyssey.uwaterloo.ca/
The help files are primarily in HTML format and are located mainly in the help subdirectory under the application root.
A Git repository for the Odyssey project has been created on UW's GitLab.
Although the repository has already been created and shouldn't need to be created again, this segment documents the process that was used to create the repository as an example in case you need to create other repositories on GitLab. In this first phase, we'll create a repository for the whole Odyssey application, but we'll deposit only the documentation. Source code and other project files can be added later.
We're going to copy files and directories from the live implementation to the workstation.
>git config --global user.name "Joe Schmoe" >git config --global user.email "jschmoe@uwaterloo.ca"
>git init
>git add . >git commit -m "Initial creation of repository. Documentation only."
Project: Odyssey Waterloo Odyssey is a web application that provides the following services: Instructional Support — Examination Management, TA Assignments Graduate Admissions — Support for processing of applications for graduate studies It is written primarily in Python and uses a PostgreSQL database and an Apache web server on a Linux host. The production implementation is located here: https://odyssey.uwaterloo.ca/ Internal documentation is available at: https://cs.uwaterloo.ca/twiki/view/CF/OdysseyDocumentation
>git add README >git commit -m "Added README file"
Field | Value |
---|---|
Project path | odyssey |
Namespace | cscf |
Description | Odyssey instructional support and graduate admissions web application |
Visibility Level | Private |
>git remote add odyssey gitlab@git.uwaterloo.ca:cscf/odyssey.git
>git push -u odyssey master Counting objects: 141, done. Delta compression using up to 8 threads. Compressing objects: 100% (127/127), done. Writing objects: 100% (141/141), 567.36 KiB | 0 bytes/s, done. Total 141 (delta 7), reused 0 (delta 0) To gitlab@git.uwaterloo.ca:cscf/odyssey.git * [new branch] master -> master Branch master set up to track remote branch master from odyssey.
To make a development copy of the Odyssey project on your workstation, follow these steps.
>git config --global user.name "Joe Schmoe" >git config --global user.email "jschmoe@uwaterloo.ca"
>git clone gitlab@git.uwaterloo.ca:cscf/odyssey.gitThis will create an odyssey directory at your current file system location, with the project under it. The odyssey directory is also your local copy of the repository.
There are a variety of workflows that one can use with Git, some optimized for collaboration among many project participants and overkill for our purposes. The centralized workflow
is a reasonable place to start; the basics are detailed just below. Since it is likely that only one person will be working on Odyssey documentation at any time, you can simply update your local working copy, stage the changes using the git add command, commit them to your local repository with the git commit command (or combine those two with git commit -a), and then push them to the central repository on GitLab.
Do your editing and development right in the odyssey directory and its sub-directories in your working copy. As you complete changes, add them to your local repository's staging area. The stage is a list of files that have been modified, but have not yet been committed to your local repository. Git keeps track of them. When you have a complete and integral set of changes in the stage, commit the changes to your local repository and then send them to the Odyssey repository on GitLab.
Here's a walk-through example. We'll modify the project's README file.
>git remote -v >git remote add odyssey gitlab@git.uwaterloo.ca:cscf/odyssey.git >git remote -v odyssey gitlab@git.uwaterloo.ca:cscf/odyssey.git (fetch) odyssey gitlab@git.uwaterloo.ca:cscf/odyssey.git (push)
>git pull odyssey master From git.uwaterloo.ca:cscf/odyssey * branch master -> FETCH_HEAD * [new branch] master -> odyssey/master Already up-to-date.
Project: Odyssey Waterloo Odyssey is a web application that provides the following services: Instructional Support — Examination Management, TA Assignments Graduate Admissions — Support for processing of applications for graduate studies It is written primarily in Python and uses a PostgreSQL database and an Apache web server on a Linux host. The production implementation is located here: https://odyssey.uwaterloo.ca/ Internal documentation is available at: https://cs.uwaterloo.ca/twiki/view/CF/OdysseyDocumentation To define a Git remote called "odyssey" for this repository, use this command: git remote add odyssey gitlab@git.uwaterloo.ca:cscf/odyssey.git
>git add READMEYou might repeat steps 3 and 4 several times, making and staging changes to various files, before you commit them to your local repository.
>git commit -m "Added Git note to README" [master 78d8fb5] Added Git note to README 1 file changed, 3 insertions(+)
>git push odyssey master Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 429 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To gitlab@git.uwaterloo.ca:cscf/odyssey.git 287761e..78d8fb5 master -> master
To deploy your documentation changes, simply open an SSH connection to linux.cs and copy the new or updated files to the correct locations at or under this path:
/software/odyssey-3_apache/data/vhosts/odyssey.uwaterloo.ca/
An automated deployment method using scripted Git commands to pull updates from the GitLab repository is possible.
When the main Odyssey project—source code, schemas, etc.—has been added to the GitLab repository that current contains only the documentation, there may be multiple people working on different aspects of the project. Then a more complex (and more common) Git workflow involving multiple branches—one master branch and one or more development or 'feature' branches—and merging may be in order. (The WWW is replete with workflow descriptions and examples.) That's when you might need some of the more advanced features and commands of Git.
Here are some handy resources.
Here's a succinct summary of the most common Git commands in an easy-to-grok diagram.
-- JeffGuild - 2015-11-09
I | Attachment | History | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|---|
![]() |
git-transport.png | r1 | manage | 43.0 K | 2016-02-16 - 17:30 | DanielAllen | git data transport commands |
![]() |
topthreedirs.png | r1 | manage | 1.8 K | 2015-12-16 - 16:27 | JeffGuild | Diagram of the top three directories of the repository |