# Advanced Software Development Term 2 Labs

## Overview
This repository contains all implementations for the tasks and activities from the practical labs of the **Advanced Software Development** module. The labs cover various aspects of software development, including GUI development, database integration, testing, and concurrency.

## Contents
The repository includes solutions for the following weeks:

- **Week 8:** Introduction to GUI development using Python's Tkinter library. Activities include creating basic GUI components, handling user inputs, and designing a simple login form.
- **Week 9:** Working with databases using SQLite3 and MySQL in Python. Integration of GUI with database operations for CRUD functionality.
- **Week 10:** Implementation of the Model-View-Controller (MVC) design pattern in GUI applications. Database interaction improvements and introduction to MongoDB.
- **Week 11:** Unit testing using Python's `unittest` and `pytest` frameworks. Writing test cases for GUI and database functionalities.
- **Week 12:** Introduction to multithreading and multiprocessing in Python. Exploring parallel programming and its applications in software development.

## Getting Started
1. Clone the repository:
   ```bash
   git clone https://gitlab.uwe.ac.uk/nq2-hung/advanced-software-development-term-2-labs.git
   ```
2. Ensure you have Python installed (preferably version 3.8 or later).
3. Install required dependencies:
   ```bash
   pip install -r requirements.txt
   ```
4. Navigate to each week's folder to explore the practical exercises and implementations.

## Usage
Each week's folder contains Python scripts and necessary data files. Read the associated documentation or comments within the scripts for guidance on running the exercises.

## Contribution
Feel free to contribute by improving code structure, adding comments, or suggesting optimizations. You can fork the repository and submit a pull request.

## License
This project is for educational purposes and follows the University of the West of England's academic policies.