Run the CLI by executing the following command:
python3 -m clinic cli
- Log in to the application.
- Perform the following operations:
- Create, update, retrieve, and delete patients.
- Create and manipulate notes.
- Observe how the system handles user inputs and updates the data.
- Understand how the CLI interacts with the controller and model.
- Observe patterns for error handling (e.g.,
try-except
blocks orif
checks). - Note the separation between:
- Data Manipulation: Handled by the controller and model.
- User Interaction: Handled by the view.
- Install PyQt6 using pip:
pip install PyQt6
- Ensure the
clinic/gui
directory containsclinic_gui.py
as the main entry point for your GUI. - Run the GUI using:
python3 -m clinic gui
The GUI follows the Model-View-Controller (MVC) pattern:
- Model: Represents the application's data (e.g., patients, notes).
- View: Handles the GUI (PyQt6 windows, widgets).
- Controller: Acts as an intermediary between the view and model.
- Use separate PyQt6 widgets for different functionalities, such as patient management and note management.
- Implement the following user stories:
- Log in/out.
- Create, update, delete, and retrieve patients/notes.
- Use appropriate PyQt6 widgets:
- QTableView: For listing and retrieving patients.
- QPlainTextEdit: For listing and retrieving notes.
- Test GUI interactions to ensure smooth functionality.
- Develop incrementally:
- Start with simple functionalities (e.g., log in/log out).
- Progress to more complex ones (e.g., patient and note management).
- Use error handling to ensure a smooth user experience.
- Provide clear labels, buttons, and messages.
- Validate inputs before processing.
- Display meaningful error messages for invalid inputs.
- Document all major changes and features.
- Use version control (e.g., Git) to track updates.
- Transition from file-based storage to a robust database solution:
- Use SQLite for lightweight and portable database needs.
- Optionally integrate MySQL for more complex or scalable requirements.
- Update the codebase to interact with the database using a well-defined schema.
- Redesign the user interface for simplicity and ease of use.
- Implement responsive design for compatibility across devices and screen sizes.
- Incorporate intuitive navigation and meaningful feedback for user actions.
- Use modern UI/UX frameworks or libraries for a polished appearance.
- Ensure all user inputs are validated:
- Validate on both client and server sides.
- Provide clear error messages for invalid inputs.
- Use regex and libraries to validate specific fields (e.g., email, phone numbers).
- Prevent SQL injection and other vulnerabilities during input handling.
- Package the application as a standalone executable using tools like:
- PyInstaller
- Electron
- Native OS-specific methods.
- Ensure easy installation across multiple operating systems (Windows, macOS, Linux).
- Include an installer wizard for guided installation.
- Provide offline functionality with a bundled local database.
- User-friendly interface.
- Scalable with database integration.
- Download the zip file.
- Extract the contents.
- Run the
clinic_gui
executable in thedist
folder. - Use the following credentials to log in:
- Username:
user
- Password:
123456
- Username:
- Follow the on-screen instructions.
Developed with care to streamline medical clinic management and improve user experience.