IEMS5731 Software Design and Development
IEMS5731 Software Design and Development (Fall 2024)Group Course Project Specification - Web Chat Room SystemExpected time: 40 hours per grouLearning outcomes:To produce software as a group.
- To experience the web service with a backend database system.InstructionsForm your group, and work together for a perfect demonstration of your softwareproduct.If you use help from the AI tools, e.g. ChatGPT, or online open-source projects, e.g.GitHub, write clearly how much you obtain help from the AI tools at the end of the.No marks will be taken away for using any AI tools with a cleardeclaration.All work should be submitted onto the blackboard before the due date.
- You are advised to submit a compressed file (.zip/.rar) containing both your project angroup report. Only one submission is needed for a group.As this is a group project, we grade the work on a group basis. If you decide to work onyour own, you will need to do all the group work.The group size is at most 4 students.Due dates:
- Project demonstration: 3rd December, 2024 (Tuesday) 10:30 - 18:45 at ERB 405
- Project and report submission: 3rd December, 2024 (Tuesday) 23:591Summary of the Tasks
Group formation (0%)○ The group registration starts on 12 Nov (Tuesday) at around 10 pm.
○ First, the group leader picks the time slot based on the group number (A Leader
Group X, where X is the group number).
○ Next, the group leader informs all the members to join the same member group(The Member Group X, where X is the group number)■ Leader should join the member group as well.○ In case there are some issues about the grouping, the group leader can clarify oradjust the group list by writing an email to Danny.○ Join the groups carefully. You cannot unregister the group yourself.○ You can form a group across the session.○ If youdo not join any groups, I will treat you as working individually. :)■ Danny will assign theloner as the one-man band on 27Nov (Wednesdaynight.
Project demonstration using localhost: (85%)○ A login page with database connection (10%)○ A registration page with database connection (10%)○ Account pageforupdating user information with databaseconnection (10%) Multiple chat rooms selection (10%)○ Chat room on the webpage (15%)○ Profile picture of the user (15%)○ Sending and playing audio in the chat room (15%)○ Nim countdown game for all users in the same chat room (15%)○ The score is capped by 85%.○ The project will be demonstrated on 3rd December, 2024 (Tuesday) 代写IEMS5731 Software Design and Development10:30 - 18:45at ERB 405○ Do rehearse your demonstrationbeforehand.○ At least one of the memberspresents the work.○ For the client side, we only accept Java Server Page, JavaScript, HTML and CSS;
For the server side, we only accept Spring Boot and Spring Data. For thedatabase, you are advised to use MySQL.
- Project and report submission (15%)
○ Submission of the project code (5%)○ Group report (10%) should contain:■ Group information■ Text information: Features and use cases of your software■ Images with captions: UML class diagram, databaseschema, UML sequencediagram and user interfaces for the software■ Declarations and signed receipt from theVeriGuide■ Follow the report template○ The project code and group report will be submitted to the Blackboard on or before3rd December, 2024 (Tuesday) 23:592Task 2.1: A login page with database connection (10%)
In this task, you are going to implement the basic login page,
- The database contains the user table.
- A user contains at least 5 fields/attributes.
- Both successful and unsuccessful login are demonstrated.
Task 2.2: A registration page with database connection (10%)In this task, you are going to implement the basic registration page,
- The database contains the user table.Both successful and unsuccessful registration are demonstrated.
- For successful registration, a new entry is inserted to the user table.
- For unsuccessful registration, the user table remains unchanged.
- Data validation is performed.
ask 2.3: Account page for updating user information with database connection (10%) In this task, you are going to design an account page for the user to update their informationafter logging to the system,Besides the primary key (e.g. login name, or login email), users can update all theest of the fields/attributes.
- After submitting the information, the database is updated accordingly.
- User can navigate back to the multiple chat rooms selection page.
- Data validation is performed.
Task 2.4: Multiple chat rooms selection (10%)In this task, you are going to design the main page of the app after login,
The database contains the chat room information table.
- After successful login, the users will direct to this page, selecting the available chatroom or the account page.
- At least three chat rooms should be shown.
Task 2.5: Chat room on the webpage (15%) In this task, you are going to implement the chat room,The database contains the message table, storing all the messages of all chat roomsin the same table.When two users are in the same chat room, they can chat in real time.After the user joins the chat room, the user can see the history of the messages.
- Users can exit the chat room and go back to the multiple chat rooms selection page.
3Task 2.6: Profile picture of the user (15%) In this task, you are going to design the profile picture with the following items:
The user table in the database stores the profile picture.
- If a user does not have any profile pictures, the icon showing the nickname or identityof the user is used. You can design whether you want to save this icon intoyourdatabase or not.Users can upload the profile page either in the registration page or the account page.
- profile picture (or icon) of the message sender is shown in the chat room.
Task 2.7: Sending and playing audio in the chat room (15%) In this task, you are going to design the audio feature with the following items:
- Users can record a voice message using the microphone of the machine, and sendthe voice message directly.
- Users can play the audio in the chat room.
- The audio message is also saved in the database.Task 2.8: Nim countdown game for all users in the same chat room (15%)In this task, you are going to design the Nim countdown game (see assignment 3) with thefollowing items:
- One user starts the Nim countdown game.The system will generate a random number between 20 and 30 at the start of thegame.All users in the same chat room are forced to play the game.
- The system asks the users in turn to play the game via chat message. Meanwhile,the users can still chat as normal in the chat room.
- The game messages are stored in the message table.
- There are a lot of errors you may need to consider, for example:○ The users give invalid numbers for the game.
○ Some users leave the chat room during the game.○ Some users join the chat room after the game starts.○ When encountering the above issues, some reasonable handles are
expected.4Task 3.1: Submission of the project code (5%) In this task, remember to include the whole project (including all source code) in thesubmission. Only the group leader uploads the work onto the Blackboard.
Task 3.2: Group report (10%)
In this task, one group needs to prepare one technical specification for your project. Onespecification per group. Do follow the template of the specificationThe report will be graded based on the number of mistakes and the level of the mistakes.We will divide the level of mistakes as “critical mistakes”, “major mistakes”,“minor mistakes” and “small comment”. The weighting of the four types of mistakesis1:0.5:0.3:0.1.Task 3.2.1: Group information n the cover page, you need to provide the following information:Course code and course titleThe phrase, “Technical Specification: YOUR_PROJECT_TITLE”
- Group number
- Group members information, both student ID and student nameTask 3.2.2: Features of your software
Summarize the main features (functionalities) of your software using point forms. Do not put
down many small features. Many unnecessary features are regarded as a kind of mistake.
Task 3.2.3: Use cases of your software Describe exactly three different use cases of your software. The description of the use caseshould be as specific as possible. You need to give an exact name and role for the actors.An example of a good use case for Instagram:As an exchange student to a new university, John uses Instagram to follow his new friends,and also to follow the new friends’ friends through the “recommendation” service of the app.
Task 3.2.4: UML class diagram Draw the UML class diagram to show the relations of the classes for your software. Onlyshow the name of the classes (including interfaces and abstract classes). No need to showthe details of the classes (fields and methods).5Task 3.2.5: Database schema Show the database schema used in the (i) user table and (ii) chat room table, (iii) messagetable, and (iv) any other extra tables used in your app.
Task 3.2.6: UML sequence diagram Draw the sequence diagram for two use cases. Pick two use cases from the task 3.2.3.Illustrate clearly the communication among different objects in the diagram.
Task 3.2.7: User interfaces Capture all major screenshots from your product. Give a label (a, b, c, … etc) and caption(description) for each screenshot. Besides, mark the label of the screenshot onto the flo(arrows) of the sequence diagram.Task 4: Declaration and VeriGuide receipt All declarations should be made clearly at the end of the report (e.g. the extent of seekinhelp from AI tools and the reference of some public GitHub or web projects). Besides, attachsigned VeriGuide receipt of your final report. Only one member signs the receipt.Pay attention, only the group leader submits the group report to the VeriGuide once. Neverre-submit your work to the VeriGuide. The box on the VeriGuide is called “assignment 1”under IEMS5731. Only the group leader needs to sign the VeriGuide receipt.Link to VeriGuide: https://veriguide1.cse.cuhk.edu.hk/portal/plagiarism_detection/login.jsp
6Group number and presentation time matching Do rehearse your demonstration beforehand. At least one of the members presents the work.