DigitalExcellence / dex-backend

Backend for Digital Excellence Platform
https://dex.software
GNU Lesser General Public License v3.0
21 stars 10 forks source link

Improve FHICT Git source #79

Closed Brend-Smits closed 4 years ago

Brend-Smits commented 4 years ago

In GitLab by @Brend-Smits on Apr 15, 2020, 14:08

The flow for Gitlab is weird. When a user searches for a project, the platform will automatically search the Gitlab API for existing projects that we can show. However, what do we show the user for these projects in terms of Contributors, description or other information that is hard to automatically gather? And what if a user owns a project that is automatically shown via the API, but they want to make changes to for example the contributors or description? How do we handle this?
Why do we not make the flow uniform with other sources like Github:

Doing it this way we can easily add projects from different sources, the experience for adding Github, Gitlab, FHICT Git projects will be similar for every source. It also becomes easier to manage for DeX Platform and easier to implement.

A middle ground would be to do it as following:

Brend-Smits commented 4 years ago

In GitLab by @StijnGroenen on Apr 16, 2020, 21:51

I just discussed this issue with Brend and Rens.
We think that the way that we are currently planning to implement sources (Like the FHICT GitLab) is poor. By using separate flow for gathering data (Some projects are stored in our database, others need to be retrieved from an external source), it becomes really inconvenient to implement new features or to maintain the system.

We would like to propose another solution for implementing the Digital Excellence system. Unlike the middle ground solution stated above, we would like to create an extendable system where every project is stored the same. All the projects for all the sources should be stored in our database and added manually by our users. However, adding new projects should be made as easy as possible. The platform should automatically fill in as much information about the project as possible. There should also be some wizard to help the user with importing projects from common sources like GitLab and GitHub.

By creating one single structure for projects, improvements like the search algorithm, sorting, filtering and more only have to be developed for the single database and not for all the sources.
This system would make the application more modular and easier to develop, maintain and extend. The system would also no longer be dependent on external sources or FHICT specific sources. This would make it easier to release to a more general audience (For example other schools).

Of course, this proposition needs to be discussed further. We will bring this up soon in a meeting.

wilrikdeloose commented 4 years ago

I've discussed this with the Digital Excellence team and I think I have enough feedback to be able to conclude that one uniform implementation for all sources, both internal and external, is more in favor than making one exception for the FHICT GitLab. In other words, create one flow for adding new projects to DeX and do not automatically include all FHICT GitLab projects in search results.

Brend-Smits commented 4 years ago

I've discussed this with the Digital Excellence team and I think I have enough feedback to be able to conclude that one uniform implementation for all sources, both internal and external, is more in favor than making one exception for the FHICT GitLab. In other words, create one flow for adding new projects to DeX and do not automatically include all FHICT GitLab projects in search results.

That's great news, let's dedicate resources to this in the upcoming sprint (sprint 4).

StijnGroenen commented 4 years ago

I updated the Setup Plan to incorporate these changes.

Brend-Smits commented 4 years ago

This can be closed in favor of #127 , feel free to re-open if you disagree