Cloud-based IDE
Base functionality:
- Web-based code editor
- Syntax highlighting
- Server-side simple compilation/interpretation
- Simple per-file versioning
- Base languages: C/C++ (Linux), Python, Ruby, Java
Default features:
- Project management
- Basic project creation, project code compression and export
- Source version-control:
- Basic tagging
- Multiple files version’s grouping into one commit
- Project compilation
- Automatic make file generation based on configuration
- Project code search/ replace
Additional features:
- Code auto-completion
- Class, object explorer(IDE tracks object’s attributes and methods for hinting, overview)
- Code import:
- GIT (DVCS/SVN) repository import
Base: without commits and history
Additional: with versioning
- Tar/Zip project import
- Simple code deployment:
- SSH/SFTP upload, i.e. website deployment onto production server.
Unlikely functionality:
- Simple debugging/ application memory usage (profiling)
- File multi-access with automatic conflict resolvement(File editing by multiple users at the same time with code changes being pushed/updated live on different clients)
- MinGW Windows compilation
- Code deployment
System architecture
Each system will be designed to run on separate machines/ set of machines
Research
Researched questions/ topics
- Cloud based application design and architecture differences in comparison with traditional applications
- Current application requirements (i.e. redundancy, scalability)
- Deployment, running process, requirements
Possible thesis:
- Cloud-based applications should be designed as self-sufficient application units (to achieve flexibility, scalability, application development parallelism) which are grouped into systems.