OSEDev Workbench: Difference between revisions
Jump to navigation
Jump to search
Lex Berezhny (talk | contribs) (Created page with "Workbench for FreeCAD integrating with OSEDev to provide for collaborative development, parts catalog management and versioning.") |
Lex Berezhny (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
Workbench for FreeCAD integrating with [[OSEDev]] to provide for collaborative development, parts catalog management and versioning. | Workbench for FreeCAD integrating with [[OSEDev]] to provide for collaborative development, parts catalog management and versioning. | ||
= Minimum Viable Product = | |||
# Login mechanism | |||
## FreeCAD | |||
### Dialog to let user enter their osedev.org user/name password, which is only saved in memory for the duration of FreeCAD process. | |||
### Open and maintain websocket connection. [https://github.com/websocket-client/websocket-client websocket-client] Send upon connection: | |||
#### Username/password | |||
#### Assembly 2 WB version (if installed) | |||
#### OSEDev WB version | |||
#### FreeCAD version | |||
#### ^ useful for debugging and notifying user if new versions are available | |||
### Show connection status, allow user to connect/disconnect. | |||
## osedev | |||
### Authenticate websocket connections against osedev user table. | |||
### Maintain event group for connected users in django-channels. | |||
# Chat | |||
## FreeCAD | |||
### Simple chat client/panel. | |||
### User list with online/offline status. | |||
### Show FreeCAD version number next user names in the user list. | |||
## osedev | |||
### Simple django-channels chat service implementation. | |||
### Chat messages logged to db. | |||
# Parts Catalog | |||
## Use [https://aws.amazon.com/s3/ Amazon Cloud Storage] to store files. | |||
## Listing of parts | |||
### FreeCAD list panel | |||
#### part name | |||
#### current lock status | |||
#### last modification date and user | |||
#### view part details and change log. | |||
### osedev | |||
#### respond with list of all parts upon request | |||
#### send lock/unlock notifications and part changes down the django-channels group | |||
## User can "open" (download) the most recent part. | |||
### FreeCAD | |||
#### Open file as independent document. | |||
#### Open file using Assembly 2 WB "Add" mechanism. | |||
## User can "lock" file for editing. | |||
### FreeCAD: right/click on file or a button to lock/unlock. show what the server thinks is lock status. | |||
### osedev | |||
#### process lock request | |||
#### save to db with timestamp | |||
#### notify everyone else in django-channel group | |||
#### release locks automatically after 12hrs of no activity | |||
## User can "save" (upload) the part while providing a comment for the changes made. | |||
### FreeCAD | |||
#### In addition to normal file save, there will be an upload button. (user can both keep/save file locally and/or upload changes) | |||
#### Dialog to collect changes before uploading file to S3. | |||
### osedev | |||
#### Request to osedev.org to make sure it's okay to upload (user had lock or nobody else has made changes even if lock expired). | |||
#### If lock expired but nobody else made changes allow the upload but lock the file again until the upload finishes. | |||
#### Upload file to users S3 folder. | |||
#### Request to osedev.org that file finished uploading. | |||
##### make thumbnail. webgl view. | |||
##### save change comment. | |||
##### move folder on S3 from users folder into official folder (so that other users can download it). | |||
##### Notify user that their changes were uploaded and lock released. (FreeCAD UI will reflect this) | |||
= Future = | |||
# Automate/assistant in the process of updating dependent assemblies when a sub-part is changed. | |||
## Present list of directly dependent assemblies. | |||
## User can pick which assemblies should be update. | |||
## WB will download all assemblies, lock an assembly, open in Assembly 2 WB, re-fresh parts, upload/unlock. | |||
# Search parts. | |||
# Download older versions of parts. | |||
# One click sharing of screenshot of your FreeCAD model view in chat. simple way to draw on screenshot (just single color/brush size and bitmap if that's easier). |
Revision as of 20:09, 12 October 2017
Workbench for FreeCAD integrating with OSEDev to provide for collaborative development, parts catalog management and versioning.
Minimum Viable Product
- Login mechanism
- FreeCAD
- Dialog to let user enter their osedev.org user/name password, which is only saved in memory for the duration of FreeCAD process.
- Open and maintain websocket connection. websocket-client Send upon connection:
- Username/password
- Assembly 2 WB version (if installed)
- OSEDev WB version
- FreeCAD version
- ^ useful for debugging and notifying user if new versions are available
- Show connection status, allow user to connect/disconnect.
- osedev
- Authenticate websocket connections against osedev user table.
- Maintain event group for connected users in django-channels.
- FreeCAD
- Chat
- FreeCAD
- Simple chat client/panel.
- User list with online/offline status.
- Show FreeCAD version number next user names in the user list.
- osedev
- Simple django-channels chat service implementation.
- Chat messages logged to db.
- FreeCAD
- Parts Catalog
- Use Amazon Cloud Storage to store files.
- Listing of parts
- FreeCAD list panel
- part name
- current lock status
- last modification date and user
- view part details and change log.
- osedev
- respond with list of all parts upon request
- send lock/unlock notifications and part changes down the django-channels group
- FreeCAD list panel
- User can "open" (download) the most recent part.
- FreeCAD
- Open file as independent document.
- Open file using Assembly 2 WB "Add" mechanism.
- FreeCAD
- User can "lock" file for editing.
- FreeCAD: right/click on file or a button to lock/unlock. show what the server thinks is lock status.
- osedev
- process lock request
- save to db with timestamp
- notify everyone else in django-channel group
- release locks automatically after 12hrs of no activity
- User can "save" (upload) the part while providing a comment for the changes made.
- FreeCAD
- In addition to normal file save, there will be an upload button. (user can both keep/save file locally and/or upload changes)
- Dialog to collect changes before uploading file to S3.
- osedev
- Request to osedev.org to make sure it's okay to upload (user had lock or nobody else has made changes even if lock expired).
- If lock expired but nobody else made changes allow the upload but lock the file again until the upload finishes.
- Upload file to users S3 folder.
- Request to osedev.org that file finished uploading.
- make thumbnail. webgl view.
- save change comment.
- move folder on S3 from users folder into official folder (so that other users can download it).
- Notify user that their changes were uploaded and lock released. (FreeCAD UI will reflect this)
- FreeCAD
Future
- Automate/assistant in the process of updating dependent assemblies when a sub-part is changed.
- Present list of directly dependent assemblies.
- User can pick which assemblies should be update.
- WB will download all assemblies, lock an assembly, open in Assembly 2 WB, re-fresh parts, upload/unlock.
- Search parts.
- Download older versions of parts.
- One click sharing of screenshot of your FreeCAD model view in chat. simple way to draw on screenshot (just single color/brush size and bitmap if that's easier).