A system for organizing, allocating, submitting and marking final-year university theses
This system is designed to offer a central platform for managing each step of the university thesis process. Thesis administrators can create courses, provide relevant material and add tasks to be completed. Students are able to find and request topics offered by supervisors, submit their work and receive their feedback. Thesis supervisors can create and offer topics, mark submitted work and assign assessors.
It is assumed that:
- Python 3.6.8 or above is installed
- SQLite 3.22.0 or above is installed
- JSHint 2.10.2 or above is installed
Run the following commands to initialize the project:
# Install Python requirements
pip3 install -r requirements.txt
# Set up linters in a UNIX environment
sh config.sh
# Initialize an empty database
sqlite3 db/thesis.db < db/schema.sql
# Populate database with dummy data
python3 gen_data.py
Run the Python Flask server with the following command:
python3 server.py
Then navigate to http://localhost:5000. The server should restart automatically upon changing the project files.
app/
- Python server blueprints and helpersdb/
- database-related filesstatic/
- CSS and JS filestemplates/
- Jinja2 HTML templates
Some libraries used in this project are open-source. These include:
- https://materializecss.com/getting-started.html
- http://mirjamsk.github.io/materialize-pagination/
- https://github.com/stationer/SortTable
- https://cdnjs.com/libraries/jquery/
- https://github.com/xdan/datetimepicker
The files associated with these libraries are
static/css/materialize.min.css
static/js/vendor/materialize.min.js
static/js/vendor/materialize-pagination.js
static/js/vendor/sort-table.min.js
static/js/vendor/jquery-3.4.1.min.js
static/css/jquery.datetimepicker.min.css
static/js/vendor/jquery.datetimepicker.full.min.js
- Clone the repository (
git clone [email protected]:costaparas/ThesisManagementSystem.git
) - Create a new feature branch (
git checkout -b foobar-feature
) - Commit new changes (
git commit -a -m 'add foobar'
) - Push to the branch (
git push origin foobar-feature
) - Create a new Pull Request
- Merge the Pull Request once it is approved by at least one other contributor
Copyright (C) 2019 Dominic McDonald, Costa Paraskevopoulos, Troy Murray, Alexander Hodges, Chang Ge, Rohan Bhat
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.