Computer Network Q: Consider sending over HTTP a Web page that consists of one video clip, and five images. Suppose that the video clip is transported as 25 frames, and….
For this final project, you are required to develop a Video Library System in Java for a video library, so that the system can be used to facilitate the borrowing and the management of the videos the library keeps.
1. For this final project, you are required to develop a Video Library System in Java for a video library, so that the system can be used to facilitate the borrowing and the management of the videos the library keeps. A video record should contain at least a video number and its corresponding video title, a flag indicating if the video is currently available for borrowing, and a borrower number and the corresponding borrower name if the video is currently being borrowed. Although the functionalities of the video library system are open to the students’ individual design, the system should be mainly menu-driven with the main menu options somewhat similar to, but not limited to,
Add new video to the system
Modify video record
Delete video record
Report of available videos
and the navigation among the video records should also be possible, perhaps through additional options on the main menu, or on a submenu, somewhat similar to
2. This project is semi-open in that students are expected to have their own design, and/or additional capacity to enrich their final software system if the students are aiming for the top grades. Such additional features can be anything that would enhance the functionalities and user experience in using such a video library system in real life. For example, the borrowing dates could be represented and handled by the Date objects. Likewise, the video search could be based jointly on multiple aspects, and the returned search results could be exactly those which satisfy the search criteria, or could be nonexact in that the records matching more closely with the search criteria will be listed earlier.
3. External file or files are also expected to be utilised for storing the video records. In particular, when the Video Library System starts, it should first load the existing records from the data file/s which should contain sufficient number of video records. For those who are having difficulties in implementing such data files, it is highly recommended that they initialise enough video records directly within their Java program so that they don’t have to repeatedly enter those records when testing or demonstrating their programs.
4. It is up to each student group to decide how to design and implement their Video Library System.
5. Students must not utilise any of the Java GUI components nor any form of database servers for their project, as these are not within the scope of this subject. However, if anyone does wish to illustrate extra images, he is welcome to do so, but only just for the image display. Also feel free to make use of the following illustrating sample Java code DisplayPics.zip in this regard.
6. Students should also avoid placing their project into named package/s, because we in this subject do not formally cover that material. If any students really wish to place their project into Java packages, they can still do so on the condition that they provide a batch (for Windows) or shell (for Macs) script whose execution would first (re-)compile all their Java programs and then start up immediately their Java application for their project. This script should be easy to create by anyone who knows how packages are organised in Java. A 10% deduction of the marks on the programming part would be made, if such a script is not submitted while placing their project into certain named packages.
7. The final Project Report must be written to include, among all the other relevant matters, the following aspects.
The complete steps to compile and run your Java program, without having to make use of any form of Java IDE. In other words, you need to show how to compile and run your project programs step by step with only the use of JDK (Standard Edition). You are welcome to group these steps into a .bat program (Windows) or a .sh script (Mac), if you wish, so that its execution will automatically compile and run your project.
The main functionalities, along with the demonstrating examples and screen shots if pertinent.
The design of your user interface and how it impacts on the user experience with your software product.
How and where you made use of the paradigm of object-oriented programming, if any.
The most advanced 3 (or more) Java technical aspects, in your opinion, you have made use of in the development of your Video Library System.
Brief conclusion and reflection on your experience in completing this project.
We note that your project should aim at top quality as much as possible. Your end-product, the Video Library System, will be judged on the achieved functionalities, the look and feel, the design methodology (e.g. ad hoc versus systematic), and the use of advanced features such as object orientation and exception handling. You should cite your design and technical evidence in your Final Report on the quality of your developed software system.
Final project report and all the Java programs
Class presentation: live demonstration (5-8 minutes, subject to changes) – during the normal class time of the final teaching week, week 14.
Students must upload their compiled Java programs (all compiled class files and data files should be included), before the presentation, in a single zip file under the name 12345678-livecode.zip where “12345678” should be replaced by their own student number/s. Students will only be allowed to use this uploaded zip file for the live demonstration.
The presentation will have to strictly observe the time restriction. Any time loss due to the students’ ill preparation will be included as part of the presentation. As such, students are highly recommended to copy their complete and compiled project on their own USB stick and test running their project demo on the USB stick on their own beforehand so as to ensure the smoothness of their code demonstration in class. The presentation should also
state first who you are, and who your project partner is;
give a very short description (one-liner) on what features you program has implemented;
demonstrate the most competitive features of your program earlier than the other less significant features;
avoid lengthy data entry during the live demo, by preloading the data files with sufficiently many suitable records.
The performance on the live demonstration/presentation will be counted towards the final project marks in terms of the programming basics and crashes, bugs, and robustness aspects of the project.
Code authentication – Some students may be required to meet the subject coordinator in person to authenticate their work for the final project, i.e. the Java code they wrote for this project, to demonstrate they authored the whole work themselves apart from the parts declared in their submission as having been obtained elsewhere. While we expect very few students (if any at all) would be called upon to perform this code authentication, failure to meet this requirement by the relevant students within 7 days from issuing the request for the authentication may lose up to 25% of the marks for the coding.
Marking – It is important that students’ submitted work be their own work, and no part of their Java programs should come from other students’ work. If any code resources or program components from the Internet or elsewhere are made use of, such a use must be explicitly acknowledged in the submission to avoid any plagiarism suspicion. The marking will also monitor the differences between the skills shown in the previous assessments, especially those in the In-Class Tests, with the programming skills and maturity manifested in the final project.
The submission should contain the Final Project Report and all the relevant Java source code in a directly compilable format.
The submitted Java programs should be directly compilable and runable without the use of any Java IDE (such as Netbeans or Eclipse), although students are free to develop their project system with any Java IDE they may choose. That is, your submitted Java code should be directly compilable via javac YourJavaProg.java in the subdirectory where your Java program YourJavaProg.java is kept, and your Java programs should be compilable and runnable under the JDK installed on the school lab/s (currently JDK 17) or runnable at the smaller classical version, 1.8.0_261, the last subversion of ver 1.8. Uncompilable Java programs may lead to an automatic loss of 50% of the respective total marks.
Zip (don’t use the rar compression format) all the relevant files into a single zip file, and then upload it via the submit button on the subject website. 1 mark may be deducted if the submission is done via the rar compression. It’s each student’s responsibility to keep the submission receipt which will be automatically generated after each successful submission. When making a submission, enter your assignment partner’s email address into the field RECEIPT EMAIL on the submission page so that your partner will be aware of whether you have submitted your work in a timely manner. The submission receipt will also be emailed to the submitter’s student account automatically upon a successful submission.
A statement on the work distribution in percentage (e.g. 50% for David and 50% for Louise) agreed among all the group members. If this statement is absent, then it will be assumed that all group members have made equal amount of contribution to the assignment solution. Achieving a 50%:50% work distribution is also the goal of this team work; the person who contributes less than 50% may result in having less mark than the other team member.