aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md28
1 files changed, 27 insertions, 1 deletions
diff --git a/README.md b/README.md
index a36bcf6..b684d44 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,10 @@
-# Project Title Goes Here (10 words maximum)
+# Project Title Goes Here (10 words maximum): Hermes
### Statement
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
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.**
### 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:
- 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.
### 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? ...)
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.
### 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?
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.
+
### 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?
If you include some kind of _quantitative analysis,_ that would be good.