Final Year Proposal Form by tqf12573


									          Final Year Proposal Form 2005/2006

Student Name: Mohammed Al-Tahs             Stream (CSSA/SDIS/DKM):
Project Title
An Online Development Environment (ODE).
~ Web Application
Summary (approx 200 words)
The main concept behind this project is educational. The web
application will initially consist of a C# compiler that will allow
users to compile their projects online. The web application can
potentially consists of many other compilers (VB.NET compiler, Java
compiler), to give the user the ability to compile code written in a
variety of different languages. The user can select any programming
language via a drop down list.

The user would be able to, manage his projects online. Each user will
have a personal directory in the server’s file system. There will be
a directory tree structure that will allow him/her to select a
project, and source code.

A source code can be written directly into a textbox within the web
application, and saved. It can also be uploaded by the user. The user
will be able to view any errors after a compilation, If there were
any. Once a project is compiled successfully, the user will be able
to download the “executable (.exe)”, or “assembly (.dll)” file.
However, applications will not be allowed to run at server.

The web application will also provide means for the user to document
his/her code, and save the documentation. The document can be saved
in various formats (Text, Word Document, PDF, etc).

The web application will also integrate a help mechanism that will
aid the user in case of compiler errors. This will involve the use of
web APIs. There will be a search engine that will allow users to
search other users’ code. The author of the code will be able to mark
his project as public/private, as in, share it with others users or
disable sharing.

This will be a server based web application. The end-user will only
need an internet browser that supports JavaScript, such as Internet
Explorer. The user would have to be registered, in order to user the
ODE (Online Development Environment).

This project is the first of its kind. Since it will simulate an IDE
(Integrated Development Environment); I decided to call it an Online
Development Environment.
          Final Year Proposal Form 2005/2006

Background (and References)
Integrated Development Environments, such as Visual Studio and My
Eclipse, have been used widely in software development, as a tool for
managing and compiling source code.

However, all the IDE’s developed so far; need to be installed into
the developer’s computer system. Also, most amateur programmers do
not have the ability to set up IDE’s, let alone, installing external
packages to enhance the IDE.

This project offers a major solution to the IT development world. The
user of the web application wouldn’t worry about anything besides
writing the code. The ODE will manage all the codes, documentations
and libraries at the backend. The user can store his data securely
and can access the code remotely, from any machine.

The main purpose behind this web application is educational.
Beginners can learn how to program instantly, without the need of
installing any compiler. The web application will provide links to

The main reference for developing this project will be books and
search engines. A close investigation of AJAX (Asynchronous
JavaScript and XML) will make this web application a breakthrough.
          Final Year Proposal Form 2005/2006

Proposed Approach
I will have three stages in my approach to this project.
    Research and Design
    Implementation
    Testing and evaluation

Research and Design
A number of key decisions will have to be made early in the design
process. I have decided to use ASP.NET with C#, to develop this web
application, since I have been doing a lot of developing in these 2
technologies during my work experience as a developer at Microsoft. I
will use Microsoft SQL Server, as the back end database. The software
development methodology is still to be decided. Research will involve
the following:
    Any freely available libraries I can use for the project (i.e.
    The complexity of creating each method if necessary/relevant
    Amount of useful available information
    Amount of time required to implement each method
    The range of support available to me

The web application will be complex in term of linking all the
different functionality together. In this case, the project will have
to be split into different parts, and developed separately. For this
methodology to be adapted properly, the web application has to be
designed carefully, so that the different parts can be joined without
any issues.

For the implementation, the Visual Studio.NET 2005 IDE, will be the
development tool of choice.
I assume that code snippets from existing projects, will be used
extensively for the development of this project.

Testing and Evaluation
There will be two main categories of testing for this project;
logical and security. The web application should be reliable and

The logical test will ensure that the web application is running as
expected. The user should be able to write, save, compile, search and
download a source code.

The security life cycle should ensure that only registered users can
access the resources of the web application. It should also draw a
fine line which determines what user has what access. Private
projects shouldn’t be accessed by unauthorised users. Security sins
such as SQL Injections, Denial of Service attacks, etc, should be
considered during the testing phase.
           Final Year Proposal Form 2005/2006

Evaluation Criteria
The project will be measured on the basis of the following:

  1.   Quality of the project
  2.   Security
  3.   Overall design
  4.   Implementation the functionality correctly
  5.   Code quality and robustness
  6.   Good user manual
  7.   Usability

    Project dissertation and user manual
    Source code for the project
    Test data for demonstration

Priority Features:
    Secure user login/registration/email activation system
    Ability to compile and manage C# projects online
    Managing documents online
    A windows Service (external application), to send emails.
    Search engine
    Ability to upload code.
    Feedback system

Secondary Features:
    Application localisation
    Ability to compile project written in VB.NET and JAVA
    A text editor, that will colour C# keywords as typed in.
    Eliminating post-backs, using AJAX throughout the whole web
      application (it’s highly unlikely I’ll get this feature done).
          Final Year Proposal Form 2005/2006

Technical Requirements
The following requirements are only needed by the main hosting
    Microsoft SQL Server 2005
    IIS Server
    Various API’s (AJAX, Graphs, etc)
    XML

The development machine will need the following, in association with
the requirements above:
    Visual Studio .NET 2005

The user will only need an internet browser that supports JavaScript.
However, since this project will be developed and tested mostly with
Internet Explorer, it is the recommended browser.

Project Plan

October 2005:
High level architecture view, of how the sub systems will work and
connect with the each other. How the user will interact wit the

November 2005:
Reading. Providing enough background work has been done, outlay of
the program code itself, and basic. The algorithms used should also
be implemented in pseudo code at this stage.
The security layer should be designed at this stage.

December 2005:
Coding/documenting/implementing/unit testing

January 2006:
Coding/documenting/implementing/unit testing

February 2006:
Expectation date for first beta of program with priority features
implemented. Bug fixing. Test plan will be re-evaluated as necessary.

March 2006:
Second beta, and final release, possibly with Secondary feature set.
Bug fixing, documenting, gathering results.
          Final Year Proposal Form 2005/2006

April 2006:
Finishing touches to program. End of project evaluation.

Lecturer Comments

Student Signature                         Date

Lecturer Signature                        Date

To top