open-source-uom / myuom

The myUoM app is a project of the Open Software Team of Applied Informatics, University of Macedonia (https://opensource.uom.gr). It was designed to facilitate students' daily interactions with the university.
https://my.uom.gr
MIT License
24 stars 16 forks source link

Update all the data of the application #122

Open GeorgeApos opened 2 months ago

GeorgeApos commented 2 months ago

We need some one from the University of Macedonia (or not) to update all the data and all the JSON files, meaning proffesors, their title, the restaurant menu, services etc

Also, we need to add the EDIP professors in this issue.

NikolasPpd commented 2 months ago

A few months ago I created a scraper that automatically gets the latest faculty info from UoM's website. The output format is a little different to what is currently being used here.

Currently, we have one .js file for every department: https://github.com/open-source-uom/myuom/tree/main/src/assets/data/professors

Each such file has an array of objects containing faculty information. For example:

{
    imgUrl: 'https://www.uom.gr/assets/site/public/nodes/1234/some-image.jpg',
    fname: i18n.t('first_name'),
    lname: i18n.t('last_name'),
    title: i18n.t('title'),
    tel: '2310 000 000',
    email: 'example@uom.edu.gr',
    building: 'ABC',
    office: '000'
},

Some fields are hardcoded directly in here, while others get their localized values from i18n.

The scraper outputs one .json file per department per language image

with similar json objects to the one above

{
    "imgURL": "https://www.uom.gr/assets/site/public/nodes/1234/some-image.jpg",
    "profileURL": "https://www.uom.gr/example",
    "fullName": "John Smith",
    "phoneNumber": "2310 000 000",
    "email": "example@uom.edu.gr",
    "department": "Βαλκανικών, Σλαβικών & Ανατολικών Σπουδών",
    "title": "Ε.Ε.Π. (Ειδικό Εκπαιδευτικό Προσωπικό)",
    "building": "ABC",
    "office": "000"
},

This way there is some repetition on fields that don't change between locales, but the reasoning behind the output files and their structure is you run the scraper periodically, get the latest faculty info, drag and drop the files into a folder within the myUoM project and you're done.

The goal is to minimize manual intervention to the maximum extent. With our current approach when faculty info changes you have to manually look through different files in different folders with information being all over the place which can quickly turn into a tedious task.