Skip to content

polito/thesis-management-system

Repository files navigation

Introduction

Welcome to Portale-PoliTO, a comprehensive system designed to enhance and streamline the thesis management process at Politecnico di Torino. This project is based on a high-fidelity prototype of the new teaching portal of Politecnico di Torino, with a focus on restructuring the thesis proposals section. Our goal is to upgrade the entire thesis lifecycle, from application to final exam registration.

The system consists of:

  • A back-end robust REST API built with Node.js and Express, providing endpoints for managing thesis-related data.
  • A MySQL database that securely stores all data.
  • A front-end dynamic and responsive React application that offers an intuitive user interface for interacting with the system.

Project Structure

The project is structured into three main folders:

  • back-end: Contains the Node.js back-end API.
  • database: Contains the MySQL database setup and data.
  • front-end: Contains the React front-end application.

Each subfolder contains its own README.md file with detailed setup instructions.

Setup

Before setting up the project, ensure you have the following installed:

To run the complete system, follow these steps:

  1. Clone the repository:
    git clone https://github.com/polito-ThesisManagement/Portale-PoliTO.git
  2. Navigate to the project directory:
    cd Portale-PoliTO
  3. Set up the database (see Database Installation Guide).
  4. Start the back-end (see Back End Installation Guide).
  5. Launch the front-end (see Front End Installation Guide).

Sonar Setup

The repository is already configured with:

  • sonar-project.properties for monorepo analysis (back-end + front-end).
  • .github/workflows/build.yml to run tests and Sonar analysis on push to main and pull requests.

To enable Sonar in GitHub Actions:

  1. Create a Sonar token and add it as repository secret:
    • SONAR_TOKEN
  2. Add a repository variable:
    • SONAR_HOST_URL
  3. Set SONAR_HOST_URL based on your platform:
    • SonarCloud: https://sonarcloud.io
    • SonarQube self-hosted: your server URL (for example https://sonarqube.mycompany.com)
  4. Ensure project key/org in sonar-project.properties match your Sonar project:
    • sonar.projectKey
    • sonar.organization (required for SonarCloud, ignored in most SonarQube setups)

Back End Guide

See Back-End Documentation for details on how to set up and run the API.

Database Guide

See Database Documentation for details on setting up MySQL and loading the data.

Front End Guide

See Front-End Documentation for details on running the React application.

Contributors

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors