Skip to content
Jack O'Brien edited this page Sep 7, 2015 · 3 revisions

#Prospectus

Project Io

Our project is to design and create a text editor with capabilities to allow several users to write code in the same document in real time. The editor will have many features found in a typical integrated development environment with the added bonus of “Google Doc Like” editing. Users will be able to not only write code using our program, but compile and run the code as well.
###Backlog
There are certain core features of this project that must be implemented to meet specifications. These are the main features. These features include the following: text editor, simultaneous edits, syntax highlighting, compiling, and logins.
Other features of this project are considered secondary. We plan to add at least part of these features into the final release of the project, but we will only begin their development after the main features are completed. These features are the following: additional programming languages, account administration, guest accounts, IM chat, line numbers, tabbing pages, auto completion, git integration, shortcuts, merge conflict detection, macros, mini-terminal, non text files open as hex, themes, multi-line editing.
###Technical Innovation
This project will not only allow us the opportunity to further our communication and team-working skills, it will also allow us to push ourselves technically.
One of the largest challenges in this project is to allow simultaneous edits to the same files over a network. We will have to come up with a way to add and delete text from multiple locations in the same file. It will also have to safely handle conflicts that occur if a user has connection problems. Another challenging aspect of this project is working with the system and following the system settings, such as firewall, memory and disk management, faults, and program crashes. We will have to read up on what each system expects us to do and follow those guidelines as well as cross-platform guidelines.
###ACM Code of Ethics
As software developers, we must adhere to the Software Engineering Code of Ethics and Professional Practice. The principles that we find especially relevant are as follows:

  1. 1.01. Accept full responsibility for their own work.
  • As this is a group project, we will each need to contribute an equal amount of work, and be honest if we do not.
  1. 3.01. Strive for high quality, acceptable cost and a reasonable schedule, ensuring significant tradeoffs are clear to and accepted by the employer and the client, and are available for consideration by the user and the public.
  • Since we do not have much experience managing time on a large project, we need to be flexible and realize what tradeoffs need to be made.
  1. 3.08. Ensure that specifications for software on which they work have been well documented, satisfy the users’ requirements and have the appropriate approvals.
  • To ensure proper time management, we will need to document and plan our work before starting development.
  1. 3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.
  • Because of time restraints, we may not be able to perform “adequate” testing on our product.
  1. 6.05. Not promote their own interest at the expense of the profession, client or employer.
  • We will all need to balance our time for school, work, personal events and this project.
  1. 6.08. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work.
  • We need to keep track and document all bugs, even if we do not or cannot get to it for which parts of the project we work on.
  1. 7.01. Encourage colleagues to adhere to this Code.
  • We will need to encourage our colleagues to adhere to this code.
  1. 7.08. In situations outside of their own areas of competence, call upon the opinions of other professionals who have competence in that area.
  • We all have our own areas of expertise. We will need to consult with each other when we are outside of our own area.

###Conclusion
Overall, this project will require a lot of good teamwork and determination. The technical innovations will allow us to further our technical knowledge and prove we have the ability to learn new things on our own. This project will allow all of us the opportunity to become software developers and help us in our transition from academic careers to a career in industry.