Project Team

quicksandwalleyeInternet and Web Development

Oct 31, 2013 (4 years and 5 months ago)


Project Team:

Suzana Vaserman

David Fleish

Moran Zafir

Tzvika Stein

Academic adviser:
Dr. Mayer Goldberg

Technical adviser:
Mr. Guy Wiener


System Requirements

System Architecture

Main classes and their relationships

User Interfaces

Open questions

Task list

Developers working on a software project,
nowadays, use code management tools to
organize their code (e.g. SVN and Clear Case).

The actual code creation and modification is
done locally on the developer’s machine.

The code must be downloaded and uploaded from
and to the code repository

time consuming.

A developer’s final version of the code might have
conflicts with the version on the server at upload


conflict resolving can be tedious.

Developers must have all the software required for
developing installed on their machines

licenses which raise expenses.

As a result of high software demands, both for
developing and for testing, hardware demands for
developing machines might rise as well


Sometimes, developers working on the same project
aren’t necessarily at the same physical location, which
makes it hard to cooperate and communicate with one

communication issues slow the developing

In order to overcome the issues we just mentioned we
intend to develop a web
based IDE in which:

There will be only one valid version of the code at any
given time. No local versions. No check out and check in.

All editing of the code will be done within the web
browser and stored directly on the central server.

Programmer’s view of the code is always the same for all

All resources required for developing the application will
be located on the server.

No special hardware or software requirements on the
developer’s side, other than a web browser.

An integrated chat should encourage users to
communicate with one another for better cooperation and

A standard web browser is used to interact with the

The client has to send different query requests to the
server :

Retrieve directory structure upon expand.

Retrieve users associated with active project.

Retrieve modifying users of open files.

Etc ..

Initiate update check requests regularly :

Directory structure updates

Open files updates

Chat messages updates

After each response from the server the client has to

modify the client’s view

The controller is the middle tier that interprets and
processes requests from the client and accesses the

The Controller and Database sits on the same computer

The controller consists of
components :

Web Server

Application Server

Emulates the server with apache software.

Receives requests from the client

Delegates the requests to the application server

Sends application server responses back to the client.

Consists of physical files and logical objects in the

Receives and process requests from the web server and
executes specified transactions on the database

Data requests

Directories content, association
between users and projects, etc…

Update requests

Files change

Updates both Database and physical files

Dynamic updates

users log in, log out, open files,
close files , Updates logical data.

Stores users and projects related data

(except physical files and dynamic associations)

Receives requests from the application server and returns
desired records.

Maintains properties for first system setup

Uses MySql to manipulate data

Links between user and associated projects.

Links between user and created files.

Links between tags and associated data.

Links between run configurations and files.

Links between users and permissions

The programming language we are going to support and
the tools we are going to use for compilation and execution

Will we support simultaneous connections of a certain
user to a certain project

How to keep consistency between the File System and
the DB

Data base

Build data base

Create data base controller

Project management

User management

File management

File operations

File tags

Refresh file structure

Search file

File editing/viewing

File configuration


Logging in and out of the system

System cleanup

Add new project

Delete project

Add new user

Delete user


File editing/viewing

Permission management

Run configuration definition

Execute run configuration

Project management

System administration management


Functional requirements

functional requirements