代写CS 6083, Spring 2025 Project #2代写Java编程

2025-05-08 代写CS 6083, Spring 2025 Project #2代写Java编程

Computer Science and Engineering

CS 6083, Spring 2025

Project #2    (due May 14)

April 28, 2025

In the second part of the project, you have to create a web-based user interface for the online pinboard service database designed in the first project. In particular, users should be able to register, create a profile, log in, create boards, add pictures to their boards via pinning, create streams to follow other boards, repin pictures, like pictures, send and answer friend requests, etc., as described.

Note that you have more freedom in this second project to design your own system. You still have to follow the basic guidelines, but you can choose the actual look and feel of the site, and offer other features that you find useful. In general, design an overall nice and functional system. There will be limited extra points available for a nice and smooth design. If you are doing the project in a group, note that both students have to attend the demo and know ALL details of the design. So work together with your partner, not separately. Also, slightly more will be expected if you are working in a team. Start by revising your design from the first project as needed. In general, part of the credit for this project will be given for revising and improving the design you did in the first project.

A note about the interface you are expected to build for this project. It is of course central that users be able to see a board with pictures, basically a web page containing many pictures arranged from top to bottom, maybe with their names, tags and numbers of likes, and maybe as thumbnails with several pictures in each row. (The pictures in a follow stream could be displayed in the same way.) To do this, you may want to look for libraries that allow you to create thumbnails from pictures. Also, repinning, liking, and commenting could be done via appropriate buttons for each picture, but this is up to you.

Users should be able to perform all operations via a standard web browser. This should be implemented by writing a program that is called by a web server, connects to your database, then calls appropriate stored procedures that you have  defined  in  the  database  (or  maybe  send  queries),  and  finally  returns  the  results  as  a  web  page.  You  can implement the interface in several different ways. You may use frameworks such as PHP, Java, Ruby on Rails, or VB to connect to your backend database. Contact the TAs for technical questions. There also should be ways for users to search certain streams, or all streams on the site, by typing in keywords that are matched against tags or names.

Every group is expected to demo their project to one of the TAs at the end of the  semester. If you use your own installation, make sure you can access this during the demo. One popular choice is to use a local web server, database, and browser on your laptop, which means you need to bring your own laptop to the demo. (In this case, your project does not have to be available on the public Internet; it is enough to have it run locally on your laptop). Also, one thing to consider is how to keep state for a user session and how to assign URLs to content – it might be desirable if users could bookmark a picture, a board, a user profile, or the results of a search. Grading will be done on the entire project based on what features are supported, how attractive and convenient the system is for users, your project description and documentation (important), and the appropriateness of your design in terms of overall architecture and use of the database system. Make sure to input some interesting data so you can give a good demo.

Describe and document your design. Log some sessions with your system. Bring your description (documentation) and the logs in hardcopy to the demo. You should also be able to show your source code during the demo. The documentation typically consists of 15-20 pages of carefully written text describing and justifying your design and the decisions you made during the implementation, and describing how a user should use your system. Note that your documentation  and  other materials  should  cover both  Projects  1  and  2,  so  you  should  modify  and  extend  your materials from the first project appropriately.