EECE 450 Project, Fall 2009

American University of Beirut · Computer Networks · 3 pages

All EECE 450 files
EECE 450 Project, Fall 2009, page 1

Stuck on a question? A tutor can walk you through it.

EECE 450 Project, Fall 2009, page 2 EECE 450 Project, Fall 2009, page 3

More EECE 450 files

Show the text of this project
EECE450 COMPUTER NETWORKS AMERICAN UNIVERSITY OF BEIRUT ELECTRICAL AND COMPUTER ENGINEERING ZAHER DAWY & IMAD H. ELHAJJ BODY-SURFING PROJECT DESCRIPTION DUE: MONDAY JANUARY 12 TH, 2009 � Please submit your deliverables on Moodle in a single zipped file. � Late projects will not be accepted. Project is due by NOON on the due date. � You have to work on this project in groups of 2 or 3 of your choice. Clearly groups of 2 would have an advantage. � During the project demo questions will be directed at each group member individually. Make sure your report clearly indicated who was responsible for each part. Members of each group are expected to jointly work on the project implementation and development but there must be clear ownership of parts. � You are required to form your groups as soon as possible. Each group is required to send an email by Monday Dec 22nd to Mr. Khalil Azar (kga03@aub.edu.lb) with the group names, IDs, and emails. � Each group is required to work on the project on their own. Any copying will immediately result in zeros to ALL groups involved and will be reported to the academic conduct committee. � Commented code is important for partial credit in case the program is not fully functional. � For any technical questions regarding the project implementation, contact Mr. Khalil Azar. Objective: Primary objective of this project is to get familiar with socket programming. Secondary objectives are to get exposed to more details of the HTTP protocol and to get familiar with Java programming. Description: You are required to develop a client and a server capable of providing body-surfing. The client must be a web browser capable of keeping track of what your friends/bodies are surfing. The server must allow for keeping track of your friends and managing the tracking. The following details and functionalities are a must but their design and implementation is up to the group. Any additional functionalities/features must be highlighted in the demo and the report and could result in extra credit. You MUST use Java socket programming interface with no restrictions on the operating system. Refer to the list of references provided at the end of this document. Specifications The basic idea is to create a web browser (client) through which users can surf the Internet and track what their friends are surfing (Body-surfing). 1. Browser Specifications (client) a) Upon launching the browser, the application will ask the users to sign in to an account found at the server side or create a new account. b) Once logged in, the browser must allow users to enter any web address and download the page. The HTML code is to be displayed. HTML code has to be parsed only to retrieve all the objects referenced in the page. These objects are to be saved locally in a specific directory. You are not allowed to use available Java web browsing functions for the page and objects retrieval. You may use Java functions for rending HTML pages if you wish to do so as an additional feature. c) The browser is to display a list of all users and give the capability of choosing friends. d) You must design/develop a friendly GUI that supports the required functionality. Be creative. e) Once a body or bodies are chosen, a pane found next to the main browsing window must display links to the websites the bodies are currently surfing. f) Once a user on the client side goes to a new website, all bodies must be updated with the current location. 2. Server Specifications a) Server must manage logins and account creations. Make sure passwords are hashed using MD5. No need to implement MD5, you can use existing functions. b) The server must maintain the list of all users and their current websites. It also should manage directly or indirectly the updates of what body is surfing what. c) Server must inform bodies if they are being tracked by someone else and if that person followed their link. Additional Features � Encrypting and decrypting information on both the client and server. � Ability to kick-off a body from your trial. Not allow them to track you. � Server logging the number of unique sites visited and the most popular sites. � Server providing the country each user is in based on their IP address and relays this information to all users. There are several databases online that allow you to automatically retrieve this information. Note that the specifications do not indicate design specifics. Which means it is the teams’ responsibility to make design choices and justify them in the report. For example: � TCP or UDP for login and tracking data exchange? � Direct communication via the server or do clients relay any information to each other directly? � How is data managed on the server? Database or files? � Are ports used and IP of server hard coded in the browser or entered by the user? Deliverables: 1. Zip all files using the filename lastname1_lastname2_lastname3.zip and upload to Moodle BEFORE the due date/time. Files must include: a) Source code for both the client and server (If you use any open or sample code make sure you mention it in the comments). Make sure your full names are the first line as a comment in the code. b) Executables for both the client and server. c) Report which includes a detailed description of your design with justifications, testing results including screenshots, description of how to run the client and server, description of any additional features and a section describing ownership of each part of the project. Report must be limited to 6 pages. 2. Peer assessment: Each student individually and privately must fill up on Moodle the peer assessment form after the group had submitted the deliverables. Any group member not submitting the form will be assumed to have 0% contribution to the project. Grade Distribution � 10%: Neatness, completeness, length, and content of the project report � 5%: Neatness and documentation of the project code � 20%: GUI design, capability, and functionality � 55%: Operation of the application according to the specifications � 10%: Implementation of some additional features � Potential bonus: Implementation of special and innovative features. Be creative. References 1. GUI design: http://java.sun.com/docs/books/tutorial/uiswing/index.html 2. UDP Network programming: http://java.sun.com/docs/books/tutorial/networking/datagrams/index.html 3. TCP Network Programming: http://java.sun.com/docs/books/tutorial/networking/sockets/index.html 4. Basic I/O: http://java.sun.com/docs/books/tutorial/essential/io/index.html 5. JDBC: http://java.sun.com/docs/books/tutorial/jdbc/index.html 6. MySql Connector: http://dev.mysql.com/usingmysql/java/ 7. Writing JDBC Applications with MySQL: http://www.kitebird.com/articles/jdbc.html