Documentation

Comprehensive documentation (PDF)

Requirements

Requirement specification

Aim of the project

Develop an open source alternative to commercial TeamViewer product. Ours product will support these basic features:

  • Remote desktop access
  • Remote mouse control
  • Remote keyboard control
  • Ability to view remote computer file system without interfering

Project members

  • Justas Šalkevičius - developer
  • Julius Rentas - developer
  • Kęstutis Vaškevičius - website / developer
  • Kastytis Venckys - documentation

Restrictions

  • Deadline is 31/01/2012.
  • Cross-platform software product.
  • MIT license.
  • Keep product GUI as simple as possible.

Technical requirements

Minimum

  • 1GHz x86-x64 architecture CPU.
  • 512 MB of RAM.
  • Integrated GPU.
  • TCP/IP Network connection.
  • Mouse and keyboard.
  • 25 MB of available hard-disk space

Recommended

  • 1GHz x86-x64 architecture CPU.
  • 1 GB of RAM for XP users and 2GB of RAM for W7 users.
  • Integrated GPU.
  • TCP/IP Network connection.
  • Mouse and keyboard.
  • 30 MB of available hard-disk space

Project

Projektavimo technologija ir pasirinkti metodai

Tools

Qt uses standard C++ but makes extensive use of a special code generator (called the Meta Object Compiler, or moc) together with several macros to enrich the language. Qt can also be used in several other programming languages via language bindings. It runs on the major desktop platforms and some of the mobile platforms. It has extensive internationalization support. Non-GUI features include SQL database access, XML parsing, thread management, network support, and a unified cross-platform API for file handling.

Methods

Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. This method has several potential drawbacks, including problems with unstable requirements, no documented compromises of user conflicts, and a lack of an overall design specification or document.

http://en.wikipedia.org/wiki/Extreme_Programming

Pair programming is an agile software development technique in which two programmers work together at one workstation. One types in code while the other reviews each line of code as it is typed in. The person typing is called the driver. The person reviewing the code is called the observer (or navigator). The two programmers switch roles frequently. While reviewing, the observer also considers the strategic direction of the work, coming up with ideas for improvements and likely future problems to address. This frees the driver to focus all of his or her attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.

http://en.wikipedia.org/wiki/Pair_programming

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.

http://en.wikipedia.org/wiki/Test-driven_development

Data flow

Four different byte arrays types (packets). First for image transfer. Second for cursor coordination saving and