University of Westminster - School of Computer Science and Engineering Assessment for 5COSC021W Software Development Group Project (subject to External Examiner's approval) Project Brief In this coursework, your team will
be working on a software application development project regarding the development of a web-based inventory application, to track the number and type assets available and loan of assets. The functional and non-functional requirements are given in the application brief section of this document. The client for the project is School's Technical Unit. You will have the opportunity to meet the representatives of the client in designated classes to clarify any questions or gaps. We have also organised meetings with industry mentors to discuss with you issues related to group work and also provide feedback on your work. Your team's job is to create this application. Project Support Structure Project Manager aka Module Leader: Strategic planning, support and guidance for the client and support for the tutors. Client manager / representative: To provide requirements and clarify any questions. They will join the module at designated times. You will be informed of the timings. Senior Managers / Mentors aka Tutors: Weekly support and guidance for project teams (that's you), solve (rarely) team issues. Evaluation / appraisals of project teams, the work the teams and their members produce and their professional conduct. Project teams aka you in groups: Team members will create project plan together, provide peer-review on each other's work, test each other's work, point out flaws that need fixing. Project team member aka each of you: Each of you will work as part of a team but you will have both group and individual tasks to do that contributes to the overall project. The allocation of tasks in each team member is decided by the team. Collectively as a team you will: model the data (including users) using logical diagrams design the use cases, activity diagrams and test plans for your use cases design relational database structures that suit the specific problem and functionality required design and develop a web-based front-end to meet the requirements of the project, design a site-map develop appropriate back-end functionalities, using appropriate programming or query languages, to handle the functional requirements of the application Aleka Psarrou CSE Technical Unit Aleka Psarrou, Barbara Villarini, Kumudini Sarathchandra, Birzo Ismael, Tusa Francesco, Philip Trwoga, Mohammad Shah, Hari Konda Ramamoorthy, Koushik Modak, Aran Hakki, Natalia Yerashenia, David Huang 5COSC021W students 5COSC021W/ Schedule and assessment document updated by Aleka Psarrou 2017-24, page 1 Application brief - CSE Equipment Inventory You are designing the School's Inventory Management web Application with the following functional and non-functional requirements: Functional Requirements Users ● ● ● ● ● ● User must be able to sign up for an account, once approved update that account information (only design user requirement not implementation). (Simple sign up functionality provided by skeleton) Admins ● User must be able to securely log in to access the system (Simple login functionality provided by skeleton) User should have the ability to view list of equipment O User should be able to filter this list by availability, date return date, type of equipment O User must be able to sort this list by predefined fields User should have the ability to search for equipment based on various fields like ID, Asset Tab, name or type User must be able to reserve i.e. book/check out equipment for CW/FYP/other study related tasks. Bookings be approved/rejected by an admin users. (only design user requirement not implementation Users should be able to receive alerts when equipment is overdue to be returned (only design user requirement not implementation) Users must be able to view their current reservations and bookings as well as historical bookings. Users must be able to cancel a reservation ● Admin must have their own sign area with secure log-in or be differentiated in a way that gives them access to administrative level functionalities (Simple admin functionality provided by skeleton) User should have the ability to view list of equipment Admin must have the ability to add new pieces of equipment with all the details Admin should be able to update existing equipment details Admin should be able to approve new user sign ups, add, remove or update user accounts and roles (from regular user to admin user) ● Admin must be able to generate various types of reports, such as current inventory status, equipment usage history, warranty, overdue equipment etc. Admin must be able to get inventory count of equipment, for overdue equipment as well as various categories/type. O Users should be able easily reserve equipment from a historical booking Not all inventory items can be borrowed or lent - items to be used only onsite should be marked as such as an attribute. 5COSC021W/ Schedule and assessment document updated by Aleka Psarrou 2017-24, page 2 Non-functional requirements System should separate business logic with application logic; ● System must be built using Django ● ● System should store data in DBMS (SQLite) The system should be able to handle multiple users with fast response times (not an implementational requirement) The user interface should be user-friendly, intuitive and can be learned quickly by all users System must be able to encrypt data communications (not an implementational requirement) The system should be able to backup and recover its data in case of system failure; whether manual or automated (not an implementational requirement) ● ● ● Coursework tasks: Your work will be assessed in coursework 1 (design) and coursework 2 (implementation). The courseworks include both group and individual tasks. Group tasks: As a team you are responsible for the design of the application and the implementation of the data structures/database to store the application data identified (for example, user data, assets data, booking information). The parts developed individually (see individual tasks below) should be able to link to create a complete application. As a team you are responsible to connect all the individual front-end and back-end systems to display the results to the user as one. There are also group report writing tasks. All members of the group are responsible for all group elements, however, you can allocate and split leading the GROUP work as you see fit, between yourselves. However, all group members are expected to either actively review or provide feedback to the group work. Students that don't somehow participate to a part of the group work will not get marks for that part. Individual tasks: In addition to the group tasks above, each member of the team needs to individually implement one or more functionalities of the application, typically by creating its own web-pages (apps) and link it to the database. This allocation will be discussed and proposed by the team but agreed by the tutor during cwk1. Suggestions include but are not limited to: one member of the group to implement the viewing of the equipment and filters, or one to implement the reservation functionality, doctor's front-end, one member to implement the backend for the user data or booking history. There are also individuaor to implement the functionality for a user to view their current bookings/reservations, or for the admin to generate reports on inventory status, equipment usage history, overdue equipment etc Please note: (a) you need to prioritise the user requirements that will be implemented; (b) that a skeleton of the application will be provided that has admin login and user login implemented. Teams need to add to this skeleton. The framework to be used is Django, with SQLite. Working in a group Everyone in the same team will be using the same data accessed through a commonly designed database. Talking to each other is encouraged. Checking each other's work and providing feedback to each other is part of the coursework itself: it is something you will be expected to do. However, doing each other's individual work is not allowed; 5COSC021W/ Schedule and assessment document updated by Aleka Psarrou 2017-24, page 3 it will be against university regulations and appropriate penalties will follow. As you need to do collaborative software development you would need to agree on interfaces between structures. During the duration of the coursework you will need to comment on each other's work. These comments will have to be recorded on-line on one or more of the following platforms: on the Trello board you share with your team where you can comment on activities (essential), and in any other communication tool that your team may be using (eg WhatsApp, Discord, Slack etc). You will also need to take on board the comments of your team-mates on your own work and specify how you used them. You need to keep all the communication between the team members. You will be required to submit some of this as evidence of collaboration in your coursework submission. In addition, your tutor/module leader may request additional evidence in case of a dispute between members of a team. Submission of coursework See detailed Coursework 1 and Coursework 2 briefs below. Coursework 1 Software/System Design Coursework 1 administration Module Leader Unit Weighting Qualifying Mark Description Learning Outcomes Covered in this Assignment Available on Blackboard Due date Start thinking about it Expected Deliverables Aleka Psarrou Coursework 1 40% 30% Group coursework (70% Team, 30% Individual) LO1 gain practical experience of software project management throughout the software lifecycle with analysis of a problem domain towards a solution that can be demonstrated to be ready for beta-testing; LO3 be able to design/apply appropriate testing methods and tools to evaluate software performance; LO4 gain practical experience of working as a member of a software development project team demonstrating collegiality and professional standards of conduct in communication, time management, project documentation and version control; Monday, 22 January 2024 Thursday, 29th February 2024, 1pm - Each student should submit BOTH the group and his/her individual templates (TWO documents). Now No later than the due date and preferably a few days earlier each student needs to upload on Blackboard both the group and individual templates that include: The logical model representing the data in the problem domain The SQLite implementation of your data structures 5COSC021W/ Schedule and assessment document updated by Aleka Psarrou 2017-24, page 4 Method of Submission Feedback before submission Feedback after submission BCS Criteria covered in this Assignment: The use cases of the functional requirements given by the client Prioritise the use cases you will implement and design mock-ups/ site-maps and activity diagrams for your application Your proposed test plan for each of the use cases you have prioritised The comments you received from your team-mates about your application and how you dealt with them The comments you have given your team-mates about their applications Your record of engagement with the module demonstrating time management and version control Added regularly on your Trello project management sites: Minutes of meetings and agreements On-line discussions Research links On week 7 (during your tutorial or as arranged by tutors): Assessed presentation [All team members must be present. Any team member that is not present will receive a maximum mark of 30%. Submission of MCs is required if you cannot present on that day] Students in a group need to work together and submit the same group template. Any students that don't work with the group and submit group template that is different from that submitted by the rest of the group will have their mark capped to 30%. Any disputes that may result of any group members submitting different group templates need to be brought to the attention of the tutor early in order to be resolved. Students need to provide clear reasons of the dispute supported by evidence together with attempts by the students to resolve the dispute. ● Online via Blackboard. Instructions will be on Blackboard well before the deadline. Failure to not submit group or individual template will be seen as no submission of that component. During tutorials from tutors (verbal), mentors (week 5) and from team-mates (peer feedback, verbal and online) ● Feedback from tutors (verbal) Written feedback and marks 15 working days (3 weeks) after the submission deadline. All marks will remain provisional until formally agreed by an Assessment Board. 2.1.1 Knowledge and understanding of facts, concepts, principles & theories 2.1.2 Use of such knowledge in modelling and design 2.1.3 Problem solving strategies 2.1.6 Recognise legal, social, ethical & professional issues 2.1.8 Knowledge of management techniques to achieve objectives 2.1.9 Knowledge of information security issues 2.2.1 Specify, design or construct computer-based systems 2.3.1 Work as a member of a development team 2.3.2 Development of general transferable skills 3.1.2 Methods, techniques and tools for information modelling, management and security 3.2.2 Defining problems, managing design process and evaluating outcomes 5COSC021W/ Schedule and assessment document updated by Aleka Psarrou 2017-24, page