CoSync/lab/TODO.md
2025-01-01 22:18:08 +01:00

74 lines
1.7 KiB
Markdown

- Implement a core package that will be in charge of file comparison, transfer
- Implement protocol :
- Be careful about metadata, large files, error handling and performance
- Implement the sql version
- Implement the tls version
- Create configuration file :
- server address
- sync mode
- sync interval
- Enhanced error handling :
- Only use panic during uncoverable situations
- Use more explicit error types
- Use json/yaml config format (see viper)
- Authentication :
- Use a token based authentication system
- Use a secure way to store the token (KMS ?)
- Maintain a data structure to track the synchronization state of files :
- Local status
- Remote status
- Synchronization status
- See io/ioutil or io/fs to read/write files
- Break functions into little functions
- Use appropriate data structures to represent files and folders. Consider using a map to store file information for faster lookups.
- Improve logging (using a library like logrus or zap) ?
- Unit & integration tests
- Improve code style
- Document
// Gemini
- Implement a CLI :
- Use a library like cobra or urfave/cli
- Implement a GUI :
- Use a library like fltk or qt
- Implement a web interface :
- Use a library like gin or echo
- Implement a daemon :
- Use a library like daemon or godo
- Implement a service :
- Use a library like consul or etcd
- Implement a cloud storage integration :
- Use a library like aws-sdk-go or google-cloud-go
- Implement a version control system integration :
- Use a library like git or mercurial
- Implement a backup system integration :
- Use a library like restic or borg
- Implement a file system watcher :
- Use a library like fsnotify or inotify