1. The Problem
Currently, there are no applications dedicated to students in universities. Students want to participate in university courses and see announcements in these courses, but have this information spread out on multiple websites, which are hard to find. They want to find fellow students with the same interests and share their opinion about courses and course material, however this is not possible yet. They also want to discuss questions and find the right place where the assig. takes place without searching on Google.
Arjun, an incoming student from India, is studying computer science at TUM. He has business administration as minor subject and is already used to visit the courses in the computer science building. The business administration courses however, are located in a lecture hall in another building in the city center of Munich. He never visited the other building before, so he does not know how to find the lecture halls for his minor subject. He browses through the courses in the course catalog of the University App and finds the course “Foundations of Business Administration” with course times and the location of the lecture hall on a map. While he is attending the course, he makes contact with fellow students who also attend the course and reads their comments. He likes one comment “Great exercises” by Jenny, who is also studying informatics. From Jenny’s picture, he remembers that they met a week ago at the coffee machine. He requests friendship with Jenny (she might help him to pass the final) and adds a new comment about exam questions from earlier exams. While he is browsing, Jenny is notified about the friend request and accepts it. Arjun, in turn, is notified that Jenny has accepted his request and now browses through all the courses that Jenny is visiting. He finds another interesting course “Cost Accounting” that he wants to visit and saves it into his course list.
The following functional requirements (FR) and nonfunctional requirements (NFR) have to be addressed in the project.
FR1: Search for available courses: A student can see all courses
of the current semester in his major and minor subject. He is able
to join the course which saves it into his course list. He can also
drop a course.
FR2: Check course details: A student can see details about a course such as the course times, the location of the lecture hall on a map and other course attendees including their name and picture.
FR3: Update profile: A student can update his profile settings and his profile picture. He can also change the notification settings.
FR4: Add comments: A student can add comments about a course and thus start a discussion. Others can like the comment and write follow-up comments.
FR5: Request friendship: A student can request friendship with another student who then receives a notification about the request. The second student can accept and reject friendship which both notifies the first student.
FR6: Browse friends’ courses: A student can browse the courses of his friends.
FR7: View announcements: A student can view course announcements and comment/like them.
FR8: Post updates to timeline: A student can post updates to his timeline. Friends are notified about updates and can comment and like them. Certain updates are posted automatically such as saving a course into the course list or commenting on a course.
FR9: See course calendar: A student can see all courses in a calendar.
NFR1: Usability: The app should be intuitive to use and the user interface should be easy to understand. All interactions should be completed in less than three clicks. NFR2: Conformance to guidelines: The design of the app should conform to the usability guidelines for the chosen operating system.
NFR3: Target platform: The app has to be developed in Java.
NFR4: Backend system: The customer provides a backend system with a couple of services that have to be used in the app. Additional constraints: • The version control system must be git. • Source code documentation must be in HTML format.
4. Target Environment The application should be demonstrated in Java.