% Example LaTeX Document

% Preamble:  Sets up General Parameters which are Global
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{doublespace, fullpage}

% Body:  Main Document
\begin{document}
\title{TJHSST Senior Research Project\\ Proposal: Development of a Network-based Modular Communications Protocol\\ 2006-2007}
\author{Steven Fuqua, Barnett Trzcinski, Andy Street}
\maketitle

\begin{abstract}
The project focuses on an implementation of a server-client system. The principle is to allow for a module format, allowing the network to transmite various forms of data (IM, email, news feeds, etc) using a standardized XML-based encoding scheme.
\begin{itemize}
 \item Area 1: Networking is a foundation required for the project to function. In addition, this brings along the idea of network security.
 \item Area 2: Modularized programming allows for abstraction of key components of the program, as well as allowing the system to be easily adaptable to new functionality.
 \item Area 3: Developing an appropriate XML scheme for transmitting data will be a significant part of the early stages of the project.
 \end{itemize}
%\\  '\\' generates a newline    '%' is a comment line
\par
% http://www.artofproblemsolving.com/LaTeX/AoPS_L_GuideLay.php
{\bf Keywords:} Networking, modules, XML 
\end{abstract}

\section{Program Versions}
\subsection{1st Quarter}
 \subsubsection{Networking}
 Without a network, there is no project. The first priority will be to establish a stable client-server system, allowing for transmitting information, accepting, dropping, and managing connections. By the end of the first quarter, this should be finished.
  
 \subsubsection{Modules}
 The first module to come up will probably be instant messaging, due to ease of testing and implementation. By the end of the first quarter, this should be in progress.

 \subsubsection{Encoding}
 Once a basic server is established, work can begin on encoding data in XML to allow for modules to be recognized and treated correctly. By the end of the first quarter, a basic, expandable XML system should be in place.

\subsection{2nd Quarter}
 \subsubsection{Networking}
 With the basic network framework in place, more functionality can be added. This includes a database backing, registering and storing of clients, storing information (for email, etc), and parsing news feeds. Some of these functions should be added or in progress during 2nd quarter.
  
 \subsubsection{Modules}
 As the server advances, modules should be gradually added to develop the application. Some possible modules to add during 2nd quarter include email and news feeds, as data storage becomes possible. Instant messaging should be functional and debugged, with possible new features added. In addition, a clean client interface should be planned.

 \subsubsection{Encoding}
 When a basic encoding framework is developed, there is not much work left to do on the encoding scheme. As modules are created, a way of encoding/decoding transmitted data cooresponding to them needs to be added as well.

\subsection{3rd Quarter}
  \subsubsection{Networking}
  By the end of 3rd quarter, the server should be stable, capable of being left online for long periods of time, and developed enough to require little further work. Most code changes should effect only the modules, which may or may not require rebooting the server. If time allows, an GUI could be created for the server terminal. If not already dealt with, network security should be addressed.

 \subsubsection{Modules}
 The basic modules should all be completed, just requiring polish. New, more interesting modules could be looked into as time allows.

\section{Individual Role: Barnett Trzcinski}
I will be working on the server component of the project, focusing on core network implementations as well as XML standards and communication. Initially basic echo server functionality will be implemented, adding on SSL encryption and XML token-passing as the quarter progresses. A module system will then be implemented wherein the same server houses multiple functions which are even loaded/unloaded at will.
\end{document}

