Due: Friday, May 15 by 5:00 pm
Reading: Chapter 13 and/or 15 of Programming Erlang
For this assignment, you will extend your chat application from
Assignment 6. (Though technically, you are free to go back to the
original version of the chat application and ignore your previous
extensions if you would like.) The idea of this assignment is to add
some persistent data to the chat application; you can either use files
(described in Chapter 13) or DETS, Disk Erlang term storage
(desscribed in Chapter 15), whichever you think is most appropriate.
You should implement one of the following sets of extensions:
- Add statistics that track the usage of the chat application over
its lifetime installation. For example, how many users have chatted?
How many times has each user chatted? Who has chatted with whom?
What is the largest group that has ever chatted? How long is each (or
the average) chat session? Choose about 5 different statistics that
seem interesting to you. Displaying these statistics as a side
panel in the I/O graphics widget probably makes the most sense.
- Add the ability to record and playback conversations. For
example, a user could type a command that starts the recording and a
later command that stops the recording; the user or the service could
pick the name to associate with this recording. In a later session,
the user can then type a command to playback any previously recorded
conversation. It is up to you to determine if the recording should
only contain the messages from the initiating client or from all clients.
You can decide how playback messages should look to everyone else.
- Any other interesting functionality you can think of that uses
either files or DETS and seems of comparable difficulty to the two
extensions described above.
Turning in your assignment
Please copy your code to the directory
~cs739-1/Spring09/handin/[login]/P7 where [login] is
your CS login name.
You can either:
- In a README file, please briefly describe the extensions that you
implemented and how you setup and run your chat server.
Again, comment your code enough that someone can follow what you did.
- Demo your chat server to me. Then, you don't have to provide any