Pre-Approved Software Development Project for COMP693
If you choose to do this project as an Independent Learning Project for COMP693, you do not need prior approval from the Examiner.
Overview
COMP693 requires you to use (or develop) highly specialised knowledge, some of which is at the forefront of what is known. You will need to use this knowledge to develop and apply new skills independently to an existing or emerging problem.
Your COMP693 project must therefore extend you beyond what have been taught in the Master of Applied Computing and your project must be at a sufficiently advanced level.
As an example you might, create a web application as a software solution to a real-life problem. You will apply Agile Methodology, use GitHub for version control, and deploy the application. The project involves planning, designing, building, testing, and deploying. You will learn and apply new technologies and skills.
Problem, Context and Scenario
You need to determine this yourself.
What is the problem that your solution will solve?
Describe the context that the problem exists within, and how will your work solve the problem.
You can describe a scenario for your solution, so that it can be evaluated in this context.
Determine how you will know if your solution will solve the problem presented.
Requirements Planning
Requirements Documentation: List of functional and non-functional requirements.
User Stories: A full set of user stories with acceptance criteria, estimation, and prioritisation, loaded onto a Jira Scrum Board.
Design
Responsive Design: Ensure the application adapts to different screen sizes.
Wireframes: Create wireframes for all main screens (suggest using a free account on Figma).
Style. Guide: Include fonts and colours. Style. your app based on the Guide.
System Architecture Diagram
Database Design: ERD Diagram & Database Tables and Record Creation Scripts
Testing
As a Minimum:
o Unit Testing: Write and execute unit tests for individual components or functions of your application. Ensure that key functionality works as intended.
o Integration Testing: Test the interaction between different modules or services within your application to ensure they work together correctly.
o User Acceptance Testing (UAT): Conduct UAT by involving real users (e.g., fellow students) to validate that the application meets the requirements and is user-friendly.
Development
Use GitHub:
o We will create a GitHub repository for you (like in COMP639). You must use this provided repository.
o Make regular commits (these will be checked).
o Include the following in your repository:
All files for the web app.
Deliverable documents.
A requirements.txt file listing all required packages.
Scripts for database creation and record population.
A detailed README file.
Deployment
Deploy the application on PythonAnywhere or another hosting platform. if your chosen technology stack is incompatible with PythonAnywhere.
Host your system, including the database.
If using PythonAnywhere, add "lincolnmac" as your "teacher" via the site configuration.
Technology Stack
Select from these technologies to self-learn and apply, noting that you MUST NOT replicate a COMP639 style. python/flask/MySQL project. You need to level up the complexity from COMP639. Be sure to research compatibility when choosing a combination of technologies, as not all frameworks, databases, languages and deployment platforms work seamlessly together.
Database Frameworks Languages
MySQL Laravel, Flask, Spring Boot, Django, Express.js PHP, Java, Python, JavaScript. (Node.js)
Postgres Ruby on Rails, Spring Boot, Django, Express.js Ruby, Java, Python, JavaScript. (Node.js)
MongoDB Express.js, MEAN/MERN Stack, NestJS, Meteor.js JavaScript. (Node.js), TypeScript.
SQLite Flask, Django, Kivy, Electron Python, JavaScript. (Node.js), Java
You could also learn and apply another programming language, but be aware of its complexity, it may be difficult to manage within the allocated time period.
Deliverables
Requirements Documentation
User Stories: Loaded onto a Jira Scrum Board.
Wireframes
Style. Guide
System Architecture Diagram
ERD Diagram
Database Tables and Record Creation Scripts
Source Code: All files for the web app, including a requirements.txt file.
GitHub Repository: Regular commits on the provided repository.
Testing Documentation: Proof of unit testing, integration testing, and user acceptance testing.
Deployment: A deployed version of your application on PythonAnywhere or another hosting platform.
README File: A detailed README explaining how to set up, run, and use the application.