Register
Submit a solution
The challenge is finished.

Challenge Overview

Welcome to Ragnar - Self Service Tool - Update User Interface Contest. This is a series of contests that will require you to create a MEAN stack based application to allow topcoder members to authorize themselves to private repositories on Github and Gitlab. This is the sixth contest in the series.

 

Contest Details

We currently have a User Interface that works with Github based endpoints. We would like to update this to work with Gitlab based endpoints too.

 

We already have the gitlab endpoints in place. We need to update the User Interface to make use of them. Use Angularjs v4.

 

For this contest, you will need to carry out the following:

  1. Currently, for admin user, the username that they will add will always be a github handle. This time, update the UI so that the admin can specify if the username being added is a github handle or a gitlab handle

  2. “Owners” of the app have a separate login page. Remove this. Instead, show the same login page irrespective of the user (because the user type is not known unless the user logs in).

  3. In the login page, in addition to the username / password based login, provide two further options - Login using Github and Login using Gitlab.

  4. Thus, “Owner” of the app will Login using Github or Gitlab.

  5. If after login, the user is an “Owner”, they will see the teams (github) or groups (gitlab) that they belong to.

  6. The “Owner” can generate unique registration URLs for each team / group. However, depending on whether the user logged in using Github or Gitlab, the endpoint to generate this URL is different. Update the current endpoints to call the correct one based on the authenticated platform such that after visiting the URL and logging in to either Github or Gitlab, the user is added to the team / group.

  7. Currently, for Github based teams, the endpoint returns all teams that the user is associated with. However, the user can add members to those teams to which they have permissions to (based on role or ownership). Since the Github endpoint does not have a filter, when the user tries to generate a registration URL for a team, first verify if the user has authorization to add members to the selected team (do this in the backend) and then generate the URL. If the user does not have authorization, notify the user in the front end.

The major requirement of this contest is to update the user interface to work with both Github and Gitlab. The Minor requirement is getting the UI elements correctly implemented as well as restricting registration url creation to only teams for which the user has authorization.

 

Note that except for Point 7 above, we have all endpoints already implemented. You only need call them from the UI in this contest.

 


Final Submission Guidelines

Zip your code and upload it to topcoder. The winning submission will be asked to create a pull request to our repository.

 

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30059713