Project Vision - AdrianSim2001/UniversityConnect GitHub Wiki
Project Vision
Executive Summary
In university, some students want to make friends, but they do not dare to take the first step. Another group of students who are good in socializing, do not have the chance to know more about other students who are in a different course or different class. The team decided to develop a website platform as it is easy to access. The project will be coded in PHP scripting language. The project is called University Social System, and it will be a 2-weeks project about providing platform that let the university students become closer with each other. The extended features the team decided to add are posting feature and about page feature. Use Case Diagram and Business Process Diagram are included to show a graphical visualisation of the user’s possible interaction with the system. However, the project risks identified by the team are limited time, limited resources and lack of communication, while the business risks identified are building incorrect software functions, building poor user interface and gold plating. The Software Development Life Cycle used are Planning and Requirement Analysis; and Building or Developing the Product. Moreover, the Resources needed for the team to get started with the project are general information of university, GitHub Authorised License, Online Communication Tool (Microsoft Teams), Code Editor (Visual Studio Code) and Servers-side Virtual Machine (XAMPP).
Problem
University students are learners enrolled in the university organisation. Some students in the university are trying to engage with other students but they do not want to take the first step. The reason might because they feel shy and do not know the communication strategies and technique to express themselves. Students maybe will have a bad emotion when lack of socializing and might get stress out with the required assignment that needs to be completed before the due dates.
There is another group of students who are good in socializing, but they just do not have the chance to know more about other students who are in a different course or different class. However, by developing a University Social System, students will have the chance to share and at the same time find out other students’ thoughts.
Initial Architecture
Project Platform Developed
This project targets to implement as a website platform. This is because website is one of the easiest platforms to access. Basically, most gadgets such as computers, smart phones, tablets have browser or web application to access to any website.
Programming Language
The project is essentially built and written in PHP, a server-side programming language. It could also interact with many different database languages including MySQL which is what we needed in our project. Moreover, our development team has gained experience of writing codes in PHP form previous study which makes us easier to build the project. There are other alternative programming languages to including Java, Python and C++.
Why alternatives are not chosen?
The alternative programming languages are not chosen due to the reason that they are not our expertise especially for C++. Furthermore, some of us do not have the compilers or tools to execute the codes of the languages. It also takes us more time to explore on how to query the MySQL database using these languages.
Scope Requirements
The 2-weeks project is called University Social System, it is a simple application which provides a simplified social platform to connect university students within the community. Users can know new friends through the project. Only authorized users can access the system.
Existing Features of the project:
- Login Feature with Student ID (Exclude the Register)
- Users' data stored in mysql database
- Add new friends and unfriend
- Rate Friends
New / Extended Features to add:
- Add posting feature (status, image)
- Add about page feature for University Organization description (Add, delete)
Add New Friend [Use Case Diagram]
Posting Feature & About Page Feature [Business Process Diagram]
/images/BusinessProcessDiagram.png
Release Plan
Risks
Project Risk
Time Limitation
- Since the time given to build and develop the project is limited (2 weeks), the development team may not be able to produce the completed product before the deadline.
- Mitigation Strategies – We should prioritize our work and tasks during the early phase of development process. Each scrum meeting should be conducted effectively to reduce the time being wasted.
Resource Limitation (Testing)
- The resources of the project given for testing and evaluating the product developed are limited. The development team do not have specific tools to conduct a usability testing for the product during the evaluation stage. Thus, the final product may contain faults and bugs which affects the product quality.
- Contingency Plan – Conduct the usability test using tools that each of the developers have like computer, stopwatch, phone. Set up the test virtually through virtual meeting.
Lack of Communication
- The project may encounter the risks of insufficient communication among the development team member. The above scenarios are very dangerous and may eventually lead to the development of false project as customers’ requirements do not match with what the product offers.
- Mitigation Strategies – Conduct scrum meeting twice for every sprint during the process of development to ensure that each developer produces the right feature in a right approach.
Business Risk
Building Incorrect Software Functions
- The project may end up in implementing a wrong function which provides a different result to the user. The function built by the developers may return results which are unexpected by users’ need and therefore does not benefits the users.
- Mitigation Strategies – Host meeting with customers consistently to ensure that each software functions meet their expectations and requirements. Unit Testing is also needed for correct output.
Building Poor User Interface
- UI Coder (User Interface) may also encounter the risk of designing a poor user interface which is not preferable by the user. The poor user interface could also add burden to user while using the product. It may lead to customer’s dissatisfaction. Poor user interface of the product could also contribute to the risk of task error. For instance, user may misinterpret the meaning of some icons and click on the wrong button which directly reflects his/her incorrect decision.
- Mitigation Strategies – Search and look for University students to undergo user interface testing. Evaluates the user interface design based on students’ results and feedback.
Gold Plating
- Extended features or enhancement added to the project may not satisfy stakeholders’ requirements. For instance, the new feature of editing profile may not require by the stakeholders.
- During the middle of development process, the developers may add in extra features which are not defined in the scope. However, the extra features included in the project do not appear to be well received by the customers or users.
Assumptions
- Each developer should obey the good practice of coding style such as good convention name, and proper block indentation. The naming styles should follow coding naming convention like Camelcase naming, short, no special characters etc.
- New Features to Add to the Project:
- Create an about page which provides information regarding the university education and general info of the university.
- Posting feature. Build and develop a posting feature which enables students to post questions in words or images to the discussion board.
- Using MySQL database as our server for the project.
- Scrum meeting has to be hosted at least once during each sprint. Scrum meeting is needed during the sprint to update on the progress of the project as well as discuss tasks for the next sprint.
Software Development Process
In general, Software Development Life Cycle (SDLC) is a process used by an organisation to design, develop and test the software. The target of SDLC is to develop software with high quality and ensures that it meets or exceeds target audiences (students) requirements and can be completed within the time range.
This first SDLC involved will be Planning and Requirement Analysis. By referring to the data of the feature requirements form the target audience (students), the fundamentals of project including the feasibility of the project is taken into consideration. Some features will be removed from the list if its feasibility has potential high risk.
Due to the time constraint, the team will direct to proceed to the SDLC, Building or Developing the Product. In this stage, the actual development will begin by building the product. The coding work performs based on the requirement of the project. The team members will follow a standard coding convention and will be using GitHub to host the repository and having a version control.
Initial Technical Strategy
- HTML for elements structures
- CSS for styling
- PHP for server-side scripting
- MySQL for Database
Team Makeup (resourcing plan)
Resources Needed for the Project
-
General information regarding a university. The information can be background, history, events etc.
-
GitHub Authorised License
GitHub helps our team developers to collaboratively work on code which provides different version of the project. The primary benefit of GitHub is its version control system, which allows for seamless collaboration without compromising the integrity of the original project.
-
Online Communication Tool (Microsoft Teams)
Primary Communication Platform between collaborators in a team. Our team uses Microsoft Team to negotiate with project owners regarding the project features.
-
Code Editor (Visual Studio Code)
It helps our programmers to edit and write source code and programs clearly by distinguishing elements.
-
Servers-side Virtual Machine (XAMPP)
XAMPP server functions to store user’s data permanently and handle the processing of abundant data.
Communication Plans
| Target Audience | Goals | Tools | Timetable |
|---|---|---|---|
| Project Developer Team | Update weekly progress and assign new task regarding what needs to be modified quickly. | Weekly scrum meetings and documents including MOM (Minutes of Meetings) | Weekly |
| Project Owner | Show implemented features meet requirements consistently. Promote program progress. | Evaluation and Analysis | Weekly |