Online Help on COM728 The Software Project
Assessment Task
You are required to develop a software application that addresses the problem scenario using Python and the tools specified in this assessment brief. You must document software implementation which provide a concise and critical discussion of your solution. You should discuss how your solution has been implemented with suitable justifications.
Introduction
PhoneDB website, which is the information website for smartphones, tablets, PDAs, and mobile devices. PhoneDB offers a comprehensive collection of data and various services that harness the potential of this valuable resource to aid users in finding the most suitable mobile device.
In this assessment, you will process, manage, and analyse device features extracted from the PhoneDB website. You will work with this real-world data set which is provided to you in the form of a CSV file. The data file, device_features.csv, contains 48 columns. Each row in the file represents a single record for a device. The data set contains complete data for all columns for each record in the file. This means that there are no missing values. Some columns may contain multiple values within the same column. It is recommended that you familiarise yourself with the content of the data file before attempting the remainder of this assessment.
Requirements
The requirements for the system are as follows:
- The system will allow the user to retrieve data from a CSV file using the csv module and fundamental python (control structure and file processing) to perform the following:
- Load the data from a CSV file into memory using the csv reader The path to the file will be specified by the user then use these loaded data to perform following tasks:
a1. Retrieve the model name, manufacturer, weight, price, and price currency for the device(s) based on the oem_id.
a2. Retrieve the brand, model name, RAM capacity, market regions, and the date when the information was added for device(s) associated with a specified code name.
a3. Retrieve the oem_id, release date, announcement date, dimensions, and device category of the device(s) based on a specified RAM capacity.
a4. Retrieve information from your chosen columns and apply a specific condition that relates to an individual device. Please select at least three columns and one condition that differs from previous requirements.
- The system will allow the user to analyse/query data using the pandas module to perform the following:
- Load data from a CSV file into memory using the pandas module. Use the file path received from task a) for this After loading the data, proceed with the following tasks.
b1. Identify the top 5 regions where a specific brand of devices was sold.
b2. Analyse the average price of devices within a specific brand, all in the same currency. b3. Analyse the average mass for each manufacturer and display the list of average mass
for all manufacturers.
b4. Analyse the data to derive meaningful insights based on your unique selection, distinct from the previous requirements.
- The system will allow the user to visualise the data using the matplotlib module as follows:
- Load data from a CSV file into Use the file path received from task a) for this purpose.
After loading the data, proceed with the following tasks.
c1. Create a chart to visually represent the proportion of RAM types for devices in the current market.
c2. Create a chart to visually compare the number of devices for each USB connector type c3. Create separate charts illustrating the monthly average price trends (in GBP) for devices released in each year from 2020 to 2023. Each chart should focus on a specific
year.
c4. Create a visualisation of your selection to showcase information related to device features that can reveal trends, behaviours, or patterns, ensuring it is distinct from previous requirements.
Software documentation
The software documentation conveys a comprehensive grasp of software implementation while furnishing substantiating evidence pertaining to the identification of legal, social, ethical, and
professional aspects associated with software development. This documentation should encompass the following key topics:
- Overview: the aim and objectives of the project and brief discussion of the dataset
- Self-reported requirement completion
- Project Implementation: Project Structure and self-created module/functions (technically explain how the module/function implemented)
Expectations
The assessment must be completed individually. You must not share, in part or whole, your assessment with another party other than the module tutor and for the purpose of submission to the university. You must ensure that the University’s academic misconduct guidelines are followed in their entirety.
It is expected that you will develop a software application that meets the stated requirements. You have been provided with a CSV file that contains data. Your application will need to appropriately load the data contained in this file, process the loaded data, query the loaded data, and visualise suitable information from these loaded data. You should appropriately test your implemented functionality.
You are required to evidence your work throughout your assessment. You should create a suitable private Git repository. Please ensure you regularly commit your implementation to your repository with clear and descriptive commit messages as you work on your solution. As part of the project and demonstration for this assessment, you will be asked to document and show your project’s repository. You should ensure that your submission complies with academic misconduct guidelines, is your own work and any external sources have been appropriately referenced. Failure to provide a Git commit history or unsuitable commit history will result in a potential cap on your overall mark, limiting it to a passing grade.
Note: If you have any special requirement or disability, please discuss this with your tutor.
Environment
You are required to use the following tools:
- Jupyter Notebook as your development environment
- 9 or above as the standard python library
- Additionally, the following libraries/modules/function may be imported and utilised:
- os – to retrieve or check file paths
- random – to generate random numbers
- The COM728 environment from the class session which installed pandas, matplotlib, Jinja2, and tabulate modules
- Git Tools and GitHub for version control
No other python libraries or modules should be used other than the specified.