/Ticket_Migrator

A django web app to automate creating projects and migrating issues to multiple target repositories

Primary LanguagePython

Nashville Software School Instructor Issue Migrator

Team Leads: Meg Ducharme, Steve Brownlee

Willed to life by: Chris Miller, Garrett Ward, Peter Forrest, John Dulaney, Kolden Prue, and Jared Fuller.

Overview

This application was developed by Nashville Software School graduates for use by the instructors. Its function is to facilitate certain GitHub processes for instructors. The application eliminates steps for instructors to delegate project issues to multiple student / team repositories.


Getting Setup

The application is hosted here. (:construction: currently not online :construction:)

This application assumes Git has been installed previously. Follow this link for help with Git.

In order to run the application, it is also assumed that you have a grasp of terminal and have a package manager. To get set up we need to install the following 4 dependencies.

  1. Node.js's package manager NPM Download here.

  2. Requires installation of the latest version of Python - Python version 3.6.5.

  3. PIP (Python Installation Package) should be included with Python installation. For help with installation follow this link.

  4. Requires installation of pipenv.

    On MacOS: Enter brew install pipenv in the terminal.

    Otherwise: Enter pip install pipenv

Running the App

  1. Navigate to the directory where you wish to install the application and type:
git clone origin git@github.com:PythonWizards/Ticket_Migrator.git
  1. When download is complete, type cd ./ticket_migrator/migrator_app/static/migrator_app, then type npm i. This will install any package dependencies.

  2. Navigate back to the folder that contains the file manage.py.

  3. Enter python manage.py migrate. Something similar to the following will appear indicating a successful migration:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, migrator_app, sessions
Running migrations:
  Applying migrator_app.0007_auto_20180501_1502... OK
  1. Next, enter virtual environment by typing pipenv shell.

  2. Install environment packages/dependencies by running the command pipenv install.

  3. Finally we run the application using python manage.py runserver and navigate in 127.0.0.1.8000 in a web browser.

🔥 Bazinga. You're in.


Using the Application

Once opened in your browser, the application will be directed to the login page.

  1. Login or create an account by clicking Register.

  2. Follow steps to register new user. GitHub Personal Access Token is required to authenticate to GitHub when:

    • You're using two-factor authentication
    • Accessing protected content in an organization that uses SAML single sign-on (SSO). Tokens used with organizations that use SAML SSO must be authorized.
  3. Navigate to GitHub in a new tab. In the upper-right corner of any page, click your profile photo, then click Settings.

  4. In the left sidebar, click Developer settings.

  5. In the left sidebar, click Personal access tokens.

  6. Click Generate new token.

  7. Give your token a descriptive name.

  8. Select the scopes, or permissions, you'd like to grant this token. To use your token to access repositories from the command line, select repo.

  9. Click Generate token.

  10. Copy the token to your clipboard. For security reasons, after you navigate off the page, you will not be able to see the token again.

  11. Once you have pasted the token into the register page, click Create Account.

Home Page

Upon creating an account, the user will be directed to the application home page. Here the user is presented with the option to select a source repository from which to pull issues to create a new sprint. If any sprints have been previously created, they will be displayed in the Saved Sprints section, where the user can click Migrate or Details. (To edit your access token, click Profile in the top right of the page next to Login.)

Drag and Drop Issues Page

Once a source repository is selected and the user clicks Select, the user will be directed to the "drag and drop" page. Here you must enter a Sprint Name and drag any issues from the box on the right into the box on the left. The left container will migrate all dropped issues into the saved sprint upon clicking Save Sprint.

Sprint Saved will appear in a modal with three options: - Home: navigate to home page, where the saved sprint will be Saved Sprints section. - Create Additional: refreshes the drag and drop page to create an additional sprint. - Migrate: will direct user to migrate page (Once user selects OK on migrate page, the sprint will no longer be shown on home page under Saved Sprints).

Migrate Page

On the migrate page, user will see the Sprint name, repository link, and all issues selected in previous page. The user will be prompted to select target reposotory/repositories (into which the sprint issues will be migrated).

Upon clicking OK, a loading screen (GIF) will appear. Once complete, the user will see a "SUCCESS" page indicating a successful migration. 😃

Technology Used to create this application

  1. NodeJs
  2. Python version 3.6.5
  3. Visual Studio Code
  4. NPM
  5. Django
  6. JavaScript
  7. Bulma
  8. HTML5
  9. CSS3
  10. Dragula
  11. Jquery
  12. Git
  13. GitHub