- allow versioning of tasks with revert back feature
To meet these requirements, **Storage** and **Database** must be set as bellow.
@ -47,4 +48,7 @@ To meet these requirements, **Storage** and **Database** must be set as bellow.
For user friendly access and modifying tasks following information should be stored in database:
- list of tasks with their newest version number
- for every task and version list of used files (their hashed names)
- for every hash name one human readable filename
- for every hash name one human readable filename
### Conclusion
Files are internally stored by their `sha1sum` hashes, so it's easy to implement versioning and get rid of files with duplicity content. **Worker** also uses files by their hashes, which is great for local caching without worries about akctual version of given file. On the other hand, **Database** keep info about human readable names, so to users (teachers) are files presented in a friendly way.