GithubHelp home page GithubHelp logo

chauhannaman98 / medfixture Goto Github PK

View Code? Open in Web Editor NEW
16.0 3.0 6.0 612 KB

A python GUI application using Tkinter and SQlite database for fixing hospital appointments

Home Page: https://medfixture.techmirtz.me/

License: GNU General Public License v3.0

Python 96.51% HTML 3.49%
connected-database sqlite-database tkinter python python3 smtp-mail forgot-password-email acknowledgements hospital hospital-appointment-booking

medfixture's Introduction

For-the-Badge-Python GitHub release (latest by date including pre-releases)

Travis (.com) branch GitHub last commit GitHub issues GitHub top language GitHub repo size GitHub License

GitHub forks GitHub stars


Logo

MedFixture

A GUI application to make and manage hospital appointments in a database!
Explore the docs »

View Demo · Report Bug · Request Feature · Make Pull Request

Table of Contents

About the Project

what-is-it-window

MedFixture is an application to book and manage the appointments of a hospital or clinic. The application itself doesn't save any data, that is, the login credentials, authentication data and patients' data is not hard programmed in the python script. The data which is handled by the application is actualy stored in an SQLite database. The appication itself can be used by several people and institutions. We just need to connect it the corresponding database.

Features

  • Uses a master login window to access the database and make data transactions. It even has a Login as Guest feature to login for only viewing the data and not editing the database.

master-login

  • If the user forgets the password, the application also has a feature to reset the password using the saved secret questions. The option to reset password usign OTP/reset link will be pushed in the upcoming versions hopefully.

master-login

  • If logged in using an user, authenticated by the credentials from the database, a new toplevel window opens and show the profile details. It also gives options to add, edit or delete the appointments.

menu-bar

  • On clicking on Add Appointment, a new window to add new appointment is opened which saves new data to connected database.

add-appointment

  • On clicking on Edit Appointment, a new window to edit existing appointment which updates data to connected database.

update-appointment

  • On clicking on Delete Appointment, a new window to delete any existing appointment which is saved in the connected database.

delete-appointment

  • On completing your work, you can simply logout your session and re-login again.

logout-warning

Built using

Getting Started

To use the this application on your system, you can simply clone this repository or download the .zip file. But, to run the application with all it's features, you must make proper setup and installation of libraries and prerequisites.

Prerequisites

  • Make sure that you have Python v3.x installed on your machine. Otherwise, you can just use this command to install python3 on Ubuntu :
sudo apt install python3

Otherwise, just go here and download the python for your system.

  • To install tkinter module for python 3, use the following command:
sudo apt install python3-tk
  • Application uses SQLite3. Thus to install the module for python3, type the command:
sudo apt install sqlite3
  • The master.py is also using Pillow which is a Python imaging library. To install the relevant module, use the following command:
sudo apt install python3-pil

Installation

  1. 👯 Clone the repository or download the .zip from here.
git clone https://github.com/chauhannaman98/MedFixture.git
  1. Go to the directory:
cd MedFixture
  1. Make sure you have installed all the prerequisites and required tools and modules.

  2. Make sure you have database(database.db) file in the directory.

  3. 👨‍💻 Run master.py from terminal/command prompt from the .

python3 master.py

Changelog

[v1.1.1] - 2020-05-31

Added:

  • The feature disables submit button to send code again unless present code(correct/incorrect) has been submitted to prevent multiple times email being sent to the registered email address.

Fixed:

  • Label overlapping in the reset window has been fixed.

[v1.0.0-beta.1] - 2020-05-10

A stable application has been released for public use in the beta state. Users are appreciated to test the application. You can create an issue to request a new feature or report a bug. Also, you can fork the repository and make a pull request for contributions.

[v0.2.0] - 2020-05-07

Added:

  • Added new delete window to delete the existing record in the database.

Changed:

  • Improved UI and UX for the add and update window.

Deprecated:

  • Deprecating display window (view option) from the top-level window.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. 🍴 Fork the Project
  2. ✨ Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. ✅ Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. 🌱 Push to the Branch (git push origin feature/AmazingFeature)
  5. ⤴️ Open a Pull Request

License

Distributed under the GNU General Public License v3.0 License. See LICENSE for more information.

Contact

Made with ❤️ by Naman Chauhan - @techmirtz - chauhannaman98gmail.com

Project Link: :octocat: https://github.com/chauhannaman98/MedFixture

Acknowledgements

medfixture's People

Contributors

chauhannaman98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

medfixture's Issues

KeyError: Cannot draw image in top level window

https://github.com/chauhannaman98/Hospital-Management-System/blob/fcfde9bee45c7a9f0eead3403a136b8ed0e8cfa9/master.py#L165

Error message:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
  File "master.py", line 67, in login
    self.drawWin()
  File "master.py", line 102, in drawWin
    self.drawImage(top)
  File "master.py", line 165, in drawImage
    self.render = ImageTk.PhotoImage(self.file)
  File "/usr/lib/python3/dist-packages/PIL/ImageTk.py", line 114, in __init__
    mode = Image.getmodebase(mode)
  File "/usr/lib/python3/dist-packages/PIL/Image.py", line 326, in getmodebase
    return ImageMode.getmode(mode).basemode
  File "/usr/lib/python3/dist-packages/PIL/ImageMode.py", line 64, in getmode
    return _modes[mode]

Create a password recovery system

In case the user forgets the login password, there should be a password recovery system to reset the password. There are several ways to pass recovery:

  1. Using the secret question technique to verify user identity.
  2. Sending OTP or reset link to the user's email or phone to confirm his/her identity.

Use guestLogin() for credential settings only

guestLogin() method shall be used to to set text in the credential text fields using insert() method. Then, it can redirect to login() method similar to other login flow control.

This will reduce the guestLogin() method and will use login() method.

Unable to show the window icon

https://github.com/chauhannaman98/Hospital-Management-System/blob/e334602e3dd279c89417972b03c8765d63741c8f/appointment.py#L140

Error message:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
  File "master.py", line 129, in appointment
    import appointment
  File "/appointment.py", line 140, in <module>
    appRoot.iconphoto(False, tk.PhotoImage(file='resources/icon.png'))
  File "/usr/lib/python3.7/tkinter/__init__.py", line 1910, in wm_iconphoto
    self.tk.call('wm', 'iconphoto', self._w, *args)
_tkinter.TclError: can't use "pyimage4" as iconphoto: not a photo image

Question asked on StackOverflow here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.