Projects for Team Collaboration

Introduction

JuliaHub Projects were built to help teams work together on a shared set of resources. When you start a project, you are asked which team members to add and which set of resources you would like to share starting with creating a directory (also known as a repository).

Currently, a project consists of files, linked blobs (of data), entrypoints, and metadata associated with artifacts. You can see how it works:

Creating a Project

You will find a tab called Projects on the left sidebar.

Sidebar

Hit the Create Project button located in the top right-hand corner.

Create Project

The first thing to do is give your project a name. Next, you can choose to give the project a short description and provide any tags that will help your team find it easily. The next important step is to select which JuliaHub application the project should launch in by default.

Default Application

At this point, you should also specify the workflow (either collaborative or exclusive). Collaborative editing lets multiple contributors work on a project at the same time, combining their changes when they are ready. In an exclusive editing workflow, the ability to modify files in the project is delegated to one contributor at a time.

Then hit Next.

Adding Teams and Users

Projects and the resources that are part of a project are meant to be accessible only by the teams and users you designate for that particular project. On the next screen, you will be asked to add team members to the project and select how your organization as a whole can access the project. Add groups or individual users to the project and use the dropdown to change the kind of permissions they have using one of our default roles. The default roles are:

  • Viewer: can view content, but has no other permissions (no edit or write access)
  • Editor: just have read/write permission on files, but cannot create projects or folders
  • Owner: can modify, rename, and archive projects

You can change this information later, even after the project has been created.

Team Members

When you are done, hit Next.

Directories (Repositories)

The last step in a project is creating a directory (also known as a repository). There are two kinds of directories that can be created. The first is a code/general directory that houses all of your files, folders, and packages. The second kind of directory is a data directory where all datasets are stored. You can think of a directory as the top-level structure of a project (similar to a GitHub repository). You can have one or multiple directories in a project. Currently, a project will not launch without a directory.

Create Directory

Name your directories and, when satisfied, click on Create Project.

Note: You can upload files directly to the directory in the UI, but right now, folder creation is limited to the IDE. Once you launch the JuliaIDE, you can add folders and subfolders to your top-level directory.

Explanation of General Directory vs Data Directory

Directory Type: Code/General

The contents of a general directory are stored in an S3 bucket, which can hold various kinds of files such as packages, text files, images, and more. You can think of a general directory as of a repository on GitHub.

Directory Type: Data

The data directory is meant to store datasets. Datasets provides Julia programs a way to map information to a database. When working with file types that are meant to be associated with data such as CSVs, XMLs, and JSON files. The best practice is to add them to the data directory.

Launch in JuliaIDE

Once you have a project that has been successfully created with a directory, you can launch the project with the default application by hitting the Launch button.

Launch

Here is an example of a project with an empty file:

IDE

Two modes of editing: Concurrent and Exclusive

When you start a project, you can enable one of two workflows for editing. Concurrent editing is a git-based workflow where multiple people can make changes in their branches and those branches are then merged with the main branch via a Publish button. Exclusive editing is the other option where only one user can make changes to a set of resources at a time. That one user is the only one with edit access until they "transfer" edit rights to another user.

Projects

Active, Finished, Archived Projects

You can also go back to the Projects tab to see all active projects. Additionally, admins can mark a project as finished, and it will move to the finish tab.

Finished

Projects can be also be archived so that they are no longer usable, but can be reactivated in the future should the need arise. You may also wish to download or share your project.

archive