started work on README.md

This commit is contained in:
Ibrahim Mkusa 2017-04-02 00:50:49 -04:00
parent 12258a43a5
commit ba43f12252

View File

@ -1,7 +1,10 @@
# Project Title Goes Here (10 words maximum) # Project Title Goes Here (10 words maximum): Hermes
### Statement ### Statement
Describe your project. Why is it interesting? Why is it interesting to you personally? What do you hope to learn? Describe your project. Why is it interesting? Why is it interesting to you personally? What do you hope to learn?
Hermes is a multi-client chat program akin to IRC written in Racket. Building
Hermes is interesting as it exposes us to various design problems namely networking,
synchronization, scheduling, and GUI design.
### Analysis ### Analysis
Explain what approaches from class you will bring to bear on the project. Explain what approaches from class you will bring to bear on the project.
@ -22,6 +25,11 @@ The idea here is to identify what ideas from the class you will use in carrying
**Your project will be graded, in part, by the extent to which you adopt approaches from the course into your implementation, _and_ your discussion about this.** **Your project will be graded, in part, by the extent to which you adopt approaches from the course into your implementation, _and_ your discussion about this.**
### External Technologies ### External Technologies
As stated previously Hermes will be designed using a client/server model. The
server instance could be running locally or on a remote machine. The same
applies for clients. We can think of the clients as connecting to an external
system, Hermes!
* authentication via databases
You are encouraged to develop a project that connects to external systems. For example, this includes systems that: You are encouraged to develop a project that connects to external systems. For example, this includes systems that:
- retrieve information or publish data to the web - retrieve information or publish data to the web
@ -32,6 +40,10 @@ You are encouraged to develop a project that connects to external systems. For e
If your project will do anything in this category (not only the things listed above!), include this section and discuss. If your project will do anything in this category (not only the things listed above!), include this section and discuss.
### Data Sets or other Source Materials ### Data Sets or other Source Materials
We won't need to download any data sets. An artificial dataset will be generated
consisting of conversations between clients, plus any additional commands that aren't
messages for testing.
If you will be working with existing data, where will you get those data from? (Dowload from a website? Access in a database? Create in a simulation you will build? ...) If you will be working with existing data, where will you get those data from? (Dowload from a website? Access in a database? Create in a simulation you will build? ...)
How will you convert your data into a form usable for your project? How will you convert your data into a form usable for your project?
@ -41,6 +53,16 @@ If you are pulling data from somewhere, actually go download it and look at it b
If you are using some other starting materials, explain what they are. Basically: anything you plan to use that isn't code. If you are using some other starting materials, explain what they are. Basically: anything you plan to use that isn't code.
### Deliverable and Demonstration ### Deliverable and Demonstration
There are two big deliverables for this project. Code for the server(Hermes,
get it?), and the clients which not only has code for interacting with Hermes,
but also a GUI for interactivity with a user like myself.
We plan to demonstrate Hermes by running the server code on a remote machine.
We will connect to the server via our PCs running client code. We will ssh into
the remote machine to see the server running. Since Hermes is a multichat anyone
can join in the demonstration by connecting their computers to the remote
machine!
Explain exactly what you'll have at the end. What will it be able to do at the live demo? Explain exactly what you'll have at the end. What will it be able to do at the live demo?
What exactly will you produce at the end of the project? A piece of software, yes, but what will it do? Here are some questions to think about (and answer depending on your application). What exactly will you produce at the end of the project? A piece of software, yes, but what will it do? Here are some questions to think about (and answer depending on your application).
@ -49,7 +71,11 @@ Will it run on some data, like batch mode? Will you present some analytical resu
Will it be interactive? Can you show it working? This project involves a live demo, so interactivity is good. Will it be interactive? Can you show it working? This project involves a live demo, so interactivity is good.
### Evaluation of Results ### Evaluation of Results
Evaluating Hermes is very simple. Can at least two clients hold a meaningful
conversation remotely?...
How will you know if you are successful? How will you know if you are successful?
If you include some kind of _quantitative analysis,_ that would be good. If you include some kind of _quantitative analysis,_ that would be good.