The Thesis management system is a system for management of theses, there are two main entities: Topic, which represents the topic of a thesis and Thesis, which is based upon the topic and represents the thesis at a university. More detail description follows.
Topic represents the topic of a thesis, the whole idea is that a person from a company, which we call the owner, creates a topic of a thesis that students can apply for. When a student applies for a topic, the owner can approve the application and create a thesis for the student.
These are the fields of Topic:
Thesis represents the student's thesis at the university. There can be zero or more theses created for one topic, but the topic is required.
Thesis fields:
Both topics and theses can be commented on, users with role Admin, Owner or Supervisor can add private comments that are not visible to students and anonymous.
Any student can apply for a topic as long as it is enabled. When applying for a topic, the user must enter the university which they apply for. The student can show his applications in his profile. Owner of the topic can approve the application by clicking on the button 'approve' and then filling in the thesis creation form.
The administrator can configure some of the properties of the system, e.g. email domain addresses that a user can sign up for the system with. The configuration can be accessed by clicking on the gear icon in the right top corner and then clicking on the button 'Site Configuration'.
Only students with email domains that are allowed by the administrator can sign up for the Thesis management system.
There are four roles - Admin, Owner, Supervisor and Student. The Admin has the highest authority and can configure the system, manage users and universities, manage any topic or thesis and add private commments. Owner can create topics and manage topics that are owned by them or manage theses that are created from their topic and add private comments. Supervisor can create theses and manage theses that are supervised by them. Student can apply for any topic and upload files and add abstract or tags to their theses.
Create an openshift JBoss EWS 2 cartridge and add Postgres and MongoDB cartridge.
Add remote openshift repository to your local project git repository.
Create custom environment variables on openshift with mailgun and url settings:
rhc env set OPENSHIFT_MAIL_FROM="Example User <mailgun@<your_mailgun_domain>>" \
OPENSHIFT_MAILGUN_API_URL="https://api.mailgun.net/v3/<your_mailgun_domain>/messages" \
OPENSHIFT_MAILGUN_API_KEY="<your_mailgun_key>" \
OPENSHIFT_SERVER_URL="https://exampledomain.com" \
-a YourAppName
Push your local repository to OpenShift.
Note: You need medium gear, otherwise grails won't be able to build the app. Or you can use small gear and build the application your self.
Install PostgreSQL and MongoDB, e.g.:
# dnf install postgresql-server mongodb-server
Start PostgreSQL and MongoDB, e.g.:
# systemctl start postgresql.service
# systemctl start mongodb.service
Install Oralce JDK 1.7 and set environment variable JAVA_HOME
Create a mailgun account.
Export these environment variables:
export LOCALHOST_MAIL_FROM="postmaster@<your_mailgun_domain>"
export LOCALHOST_MAILGUN_API_URL="https://api.mailgun.net/v3/<your_mailgun_domain>/messages"
export LOCALHOST_MAILGUN_API_KEY="<your_mailgun_key>"
There is a email.sh.tpl
file in the source directory, you can rename the
file to email.sh
, modify it to suit your mailgun settings and source
it
to set these mailgun variables.
Navigate to the source directory and run ./grailsw run-app
.
Alternatively, you can download Grails 2.2.x from official grails website,
install it and run grails run-app
.
The Thesis Management System is released under the MIT License.