# droplez

## MVP

### droplez-frontend
- Projects (Studio)
  - Project initialization, listing, updating, commenting
<!-- - Stock -->
  <!-- - Sell beats -->
  <!-- - Sell arrangements  -->
  <!-- - Sell sounds  -->
  <!-- - Sell vst presets -->
<!-- - Plugins -->
  <!-- - Donwload plugins  -->
  <!-- - Save plugins to collection -->
  <!-- - Attach presets to a plugin -->
- Personal Page -> Auth service
  - Post creation/listing/updating
  - Reactions
  - Music 
  - Highligts
- Player
  - Timeline comments
  - Lyrics
### droplez-desktop
- Project management (studio)
- Player
### droplez-cli
- Project management (studio)

Tasks: 
1. 

## Logic

CLI: 
```
- Init project in the dir, where project file exists
$ droplez init . 
  -n | --name - project name
  -a | --artist - artist name
  -c | --collection - collection name
  -t | --tags - project tags
  droplez init creates a yaml file witt project params

$ droplez add 
  -m | --message - add message to new version

$ droplez push 
  
```

## Milestones
---

### **milestone 1**: Project Initialization

#### droplez-studio
- [x] CRUD operations
#### droplez-frontend
- [ ] Studio -> Projects page
#### droplez-cli 
- [ ] Basic CRUD client
#### droplez-k8s
- [ ] Create deploy for stage environment
--- 

### **milestone 2:** Files uploading and project versioning

#### droplez-uploader
- [ ] Init file uploader
#### droplez-studio
- [ ] Add information about files
- [ ] Add versioning logic
#### droplez-frontend
- [ ] Add files uploading support 
- [ ] Add versioning on project pages
#### droplez-cli
- [ ] File upload support

---

## Notes

### Project creation vs Project initialization

- When creating a project, the new empty project instance is created (supported in Web, Desktop and Cli)
- When initializing a project, droplez config is added to already existing project (Desktop, Cli)

On init, we have a project dir, so we can add a yaml file there, but on create we need to unzip template, add config there and zip again. It should be done the fastest way possible. 

