TungTh / thesis_report_management_system

A System for Thesis Report Management and Evaluation with Event-driven Architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


International University logo

A System for Thesis Report Management and Evaluation with Event-driven Architecture

1. About The Project

This project develops an event-driven system that allows for submission, storage and evaluation of undergraduate thesis reports in accordance with the guidelines provided by International University in Ho Chi Minh City, Vietnam.

By implementing Natural Language Processing techniques, this system generates relatively quick and accurate evaluation that encourages students to revise and improve their reports, as well as acts a grading checkpoint that helps instructors make informed decisions.

The event-driven microservices architecture in combination with cloud storage ensures ease of maintainability and scalability of the system, with room for more extensive evaluation services to be implemented in the future.

1.1. Features

This system consists of:

  • A thesis submission point that allows for multiple attempts.
  • Evaluation services that generate comprehensive feedback based on the provided thesis writing guidelines.
  • An interface that displays information of the thesis document with their visualized evaluation, customized based on the user role.

1.2. Built With

The primary tools that are used to develop this application are:

  • Node.js
  • Express.js
  • React
  • RabbitMQ
  • Python libraries
  • PostgreSQL
  • Google Cloud Storage

2. Getting Started

To set up and run the project locally, the following prerequisites should be satisfied before moving to the installation steps.

2.1. Prerequisites

Make sure the tools below are installed. The instructions are given based on different operating systems:

2.2. Installation

  1. Clone the repository.
git clone https://github.com/thuhaung/thesis_report_management_system.git
  1. Create a Google Cloud Storage bucket named thesis_file_bucket.
  2. Upload the requirements folder to this bucket.
  3. Copy your Google Cloud credentials to google_credentials.json.
  4. Edit the submission deadline to your preferred date at line 145 of /postgresql/init.sql. It is recommended that this value should be after the current date on your system, otherwise, submission will be closed.
INSERT INTO public.deadline (deadline) VALUES (deadline);
  1. cd to the file path of this project.
cd file_path
  1. Run Docker compose command.
docker compose up -d

3. Usage

Access http://localhost:3000 on your browser. Sign in with any student ID, instructor ID or admin ID given in the /postgresql/init.sql file. All accounts share the same default password of 123456789.

Examples:

  • Student ID: ITITIU19114
  • Instructor ID: ITITEACH001
  • Admin ID: ITITADMIN01

Alt text

Provide inputs to the thesis submission form. An example thesis /Thesis.pdf is provided for testing purposes.

Alt text

Select any service on the left-hand navigation area to view the evaluation. Alt text Alt text

Options to download the thesis document, services' results, viewing the guidelines and resubmission are available. Alt text

Instructors can view the thesis reports and evaluations of students they supervise and give manual feedback. Alt text Alt text

Admins can edit the deadline, access the list of student submissions, send notifications to students and instructors. Alt text

4. Future Work

The architecture used to develop this system allows for ease of updating, adding or removing services due to loose coupling.

New services can be added with the following steps. For example, a service that detects and checks figure captions:

  • Copy a folder of any service and assign it a new name, for example "figure_caption_check".
  • Add the information for this service in the docker-compose.yml file.
  • Add a table for it in /postgresql/init.sql.
  • Update the name of this service in the client's environment variable.
REACT_APP_SERVICE_LIST: "...,figure_caption_check"
  • Update the name of this service in the backend's environment variable.
SERVICE_LIST: "...,figure_caption_check"
  • If needed, add a requirement (guidelines) file for the service by uploading to its file path /requirements/figure_caption_check/requirement.txt in the cloud storage bucket.
# example requirement.txt
Figure num.num. Text text text
Correct: Figure 1.1. Tech stack
Incorrect: Figure 1-1 tech stack, Picture 1. Tech stack, 
No figure caption...
  • The main algorithm can then be updated in /figure_caption_check/processor.py.

5. Contact

6. Acknowledgement

First and foremost, I would like to express my gratitude to Dr. Tran Thanh Tung, my advisor. I am thankful to have been given the opportunity to carry out this project under his guidance. Dr. Tung has been incredibly helpful and provided me with valuable advice which I am deeply appreciative of.

I am grateful for the School of Computer Science and Engineering at International University for giving me the essential prerequisite knowledge to conduct this thesis with confidence. It has been a great experience being enrolled in the Computer Science program and studying under knowledgeable instructors.

About

A System for Thesis Report Management and Evaluation with Event-driven Architecture


Languages

Language:Python 37.1%Language:JavaScript 24.1%Language:TypeScript 20.7%Language:SCSS 16.8%Language:HTML 0.7%Language:Dockerfile 0.5%