30 lines
1.8 KiB
Markdown
30 lines
1.8 KiB
Markdown
# Gadget Code: Projects
|
|
|
|
The User will create one or more Project records for tracking a software development project in Gadget Code.
|
|
|
|
It will be uncommon to query this model/collection without a User. System administrators and managers will have interest in the global Projects list. Developers will not. A Developer only cares about their own projects.
|
|
|
|
It's not a security violation for a User to see another User's projects. It's just superflous information. John doesn't care about Nancy's projects. John works on John's projects, and he owns them.
|
|
|
|
## createdAt
|
|
|
|
The date and time at which the User created the Project record in Gadget Code. This is not necessarily when the project itself was created or started. This is just when Gadget Code got involved.
|
|
|
|
## user
|
|
|
|
The User for whom the Project was created. The User is the owner of the project. Users can only see their own Projects. A user is thought of as working in their project. If multiple Users are in the chat, one of them is the Project Owner and will be marked as such. The other Users in the chat session are reffered to as Collaborators.
|
|
|
|
## name
|
|
|
|
The name of the project as displayed in lists, headers, title areas, etc.
|
|
|
|
## slug
|
|
|
|
The project's slug (my-project), which is used as it's directory name in the workspace directory by [Gadget Drone](./gadget-drone.md).
|
|
|
|
## gitUrl
|
|
|
|
The URL of the project's git repository (optional). This will be used to clone the project into the workspace directory on the drones. If this is not set, a new git repo will be created in the workspace directory and the url will be stored here.
|
|
|
|
If a gitUrl is not set for a Project and the User selects to delete the project, the project directory will be removed, and it will NOT be pushed to git. The User should be informed that the contents of the directory will be lost, and should have to confirm that this is what they want to do.
|