Problems to solve
- Missing tools for repository management, backup, inconsistency problems solving
- Multi-user access
- Versioning (history of changes)
- Cross-linking, referencing repository objects from/to other repository objects
- Off-line access
- Quick search
- Performance
Solutions so far
1. Store everything in files
- Do not install database or similar storage system
- Use only simple file access functions
- There are a lot of existing file-management tools for copying, moving, editing, backup, etc.
- Version management can be achieved using git or similar already existing tools
- Any object can be referenced by file path
- Easy to clone, backup or move repository
- Easy to clean-up (just remove redundant files)
2. Use standard text formats
- Store meta-data in .json text files
- Store descriptions in markdown (.md) text files
- No need to develop special proprietary editors and tools
- Easy to view the content and search using standard tools, which are already included to any operating system
3. Use git for version control
- Do not care of object integrity or destroying by mistake
- Let user control all commits/pushes
- Use git history for undo functionality
- Re-use git users
- Always specify appropriate user name for git commits
- Read and display git history user information
- Exists already for almost any platform
- Performance and other issues are already solved
- There are a lot of libraries/frameworks to work with git
- No need to develop additional version management
- File repository can be easily cloned over network
- Problems with multi-user access and synchronization are already solved
- Repository can be stored off-line and easily synchronized with on-line version
Base entities
- Project
- Issue
- Attachment
- Comment
Project
Set of issues.
Issue
Main feature: Rich text.
Formatted in Markdown (most modern and community supported wiki-like syntax)
Required features:
- Basic text formatting: Headers, emphasized text, lists, tables
- Code samples
- Links to web pages
- Automatic links to issues, and other entities in Mizoine
- Embedding of images and other attachments (as many possible formats as possible)
Attachment
One uploaded file.
Required:
- Automatic thumbnails
- Drag-n-drop uploading
Comment
Simplified version of issue text.
Folder system
- ABC – Project directory
- 0
- 1 – Issue folder. Simple counter. Issue can be identified by project name and number. For example: “ABC-1”
- 2
- 3
- QWER
- 0
- 1
- attachments – Attachments directory (within an issue)
- JkRE0z – Folder for one attachment. Generated short Id.
- 0_yZZj
- comments – Comments directory (within an issue)
- 2017-12-20-135803a – Folder for one comment. Date/time based Id.
- 2017-12-20-140233a
- attachments – Attachments directory (within an issue)
- 2