1 of 13

���Nextcloud App: Sync CSV Userlist��Team Members: Hunter Sanchez, Adam Kobke, Augusto Rodriguez�Product Owner: Masoud Sadjadi

FLORIDA INTERNATIONAL UNIVERSITY

2 of 13

Problem

Nextcloud, a file hosting and collaboration platform, offers a solution for managing digital resources and collaborating online. However, FIU professors face a significant challenge with this system - the manual addition of students. Each student must be individually added to Nextcloud, a process that is not only prone to human error but also remarkably inefficient.

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

3 of 13

Our Solution

  • Automated user roster processing.
  • Streamlined user and group management interface.
  • Integration with Nextcloud's existing infrastructure.

COLLEGE OF ENGINEERING AND COMPUTING

4 of 13

Implementation

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

5 of 13

Sprint 1-2

Sprint 1

User Story 1: Learn how to use basic Nextcloud features.

User Story 2: Finish setting up a development environment.

Sprint 2

User Story 1: As a user I want to be able to specify the location of a csv file on my nextcloud server

User Story 2: As a user, I want to be able to read csv data into nextcloud

User Story 3: as a user, i want a tab to access the sync user data app

User story 4: as a user i want to view the data being imported in nextcloud

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

6 of 13

Sprints 3-4

Sprint 3

User Story 1: As a user I want to be able to specify the location of a csv file on my nextcloud server.

User Story 2: As a user I want new CSV data to be able to update existing users.

User Story 3: As a user I want to be able to see which groups in the csv file don’t exist on nextcloud.

User Story 4: As a user I want to have a mapping on course codes to more readable names.

User Story 5: As a user I want to be able to handle users with multiple majors.

Sprint 4

User Story 1: As a user I want to be able to update groups based on a given mapping.

User Story 2: As a user, I want to be able to select my mappings csv file through Nextcloud.

User Story 3: As a user I want to be able to use xlsx files from PantherSoft to update the users/groups.

User Story 4: As a user I want to be able to use csv files from canvas to update the users

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

7 of 13

Sprints 5-6

Sprint 5

User Story 1: As a user, I want to be able to load my mappings from a default file in nextcloud.

User Story 2: As a user, I want my users information to update properly based on matching usernames.

User Story 3: As a user, I want my user to be able to select the input file type from a list of different file types (canvas, panthersoft, cap2 grouplist, default roster) .

User Story 4: As a user, I want the application to work for a variety of different cases.

User Story 5: As a user, I want to see detailed information about the results of my sync.

Sprint 6

User Story 1: As a user I want to be sure all groups are created correctly.

User Story 2: As a user, I want to be sure all users are created correctly.

User Story 3: As a user I want to see a log of each individual change to nextcloud (users added, groups created, etc.).

User Story 4: As a user I want to see a pleasant user interface.

User Story 5: As a user, I want both Nextcloud file uploads and local file uploads to work properly.

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

8 of 13

System Design: Architecture�

Back End Architecture

MVC Architecture

For our front end system, we used the industry standard MVC (Model View Controller) System architecture to create a flexible and easily implementable front end system. Our back end is based on Nextclouds PHP API, and the WebDav file management system provided with Nextcloud. Our controller written in vanilla JavaScript.

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

9 of 13

System Design: Deployment�

Our system is deployed through Nextcloud, being a Nextcloud application it can be deployed through any service a Nextcloud server can be hosted through.

COLLEGE OF ENGINEERING AND COMPUTING

10 of 13

Main Algorithms: Sync CSV List�

This data flow diagram shows the main algorithm behind our application UserSync. It outlines the major checks required for proper functioning, and the main two steps of the algorithm, which we define as “Creation” and “Pruning”. Creation stage is creating and updating the users based on the CSV, and “Pruning” is removing the users and groups that aren't defined in the application.

COLLEGE OF ENGINEERING AND COMPUTING

11 of 13

Testing�

For testing, we were provided multiple CSV and XLSX files with dummy user data, as well as creating our own edge case CSV files to ensure the proper functioning of the application. To ensure the quality of our code we used unit tests to make sure that any changes to our functions were implemented correctly. These tests were created before starting the user story to make sure the function would work as expected. To test our API endpoints we used programs like Postman to create HTTP requests with specific data that we wanted to check.

FLORIDA INTERNATIONAL UNIVERSITY

COLLEGE OF ENGINEERING AND COMPUTING

12 of 13

Summary

Problem Addressed: Streamlining Nextcloud user and group management, particularly for FIU professors.

Key Features:

  • Automated CSV/XLSX processing for user management.
  • Group prefix application and mapping adjustments.
  • Direct interaction with Nextcloud for user/group sync.

COLLEGE OF ENGINEERING AND COMPUTING

FLORIDA INTERNATIONAL UNIVERSITY

13 of 13

Thank you!

COLLEGE OF ENGINEERING AND COMPUTING