{"id":21855518,"url":"https://github.com/cfunkz/customtkinter-login-registration","last_synced_at":"2025-04-14T18:12:21.359Z","repository":{"id":197047303,"uuid":"697891709","full_name":"cfunkz/CustomTkinter-Login-Registration","owner":"cfunkz","description":"Registration and login app made using customtkinter.","archived":false,"fork":false,"pushed_at":"2024-12-15T02:58:08.000Z","size":2450,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T18:12:16.544Z","etag":null,"topics":["customtkinter","python","python3","sql","sqlite3","tkinter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfunkz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-28T17:27:03.000Z","updated_at":"2025-03-03T11:17:58.000Z","dependencies_parsed_at":"2024-11-28T02:16:12.646Z","dependency_job_id":"f88e8f58-f585-4bed-9639-42d7cbed0ea5","html_url":"https://github.com/cfunkz/CustomTkinter-Login-Registration","commit_stats":null,"previous_names":["didis97/customtkinter-login-registration","cfunkz/customtkinter-login-registration"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfunkz%2FCustomTkinter-Login-Registration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfunkz%2FCustomTkinter-Login-Registration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfunkz%2FCustomTkinter-Login-Registration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfunkz%2FCustomTkinter-Login-Registration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfunkz","download_url":"https://codeload.github.com/cfunkz/CustomTkinter-Login-Registration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248933340,"owners_count":21185460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["customtkinter","python","python3","sql","sqlite3","tkinter"],"created_at":"2024-11-28T02:16:06.810Z","updated_at":"2025-04-14T18:12:21.344Z","avatar_url":"https://github.com/cfunkz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Commits](https://img.shields.io/github/commit-activity/t/cfunkz/CustomTkinter-Login-Registration) ![Stars](https://img.shields.io/github/stars/cfunkz/CustomTkinter-Login-Registration?style=social)\n\n\n# CustomTkinter-Login-Registration\n\nRegistration and login app made using customtkinter with simple input validation.\n\nThis includes a sqlite3 database setup with many functions including saving the registration data, logging in, password reset, security questions, country selection, and more. Change the config.py file for your details to test e-mail functions. You can get the Gmail app password [HERE](https://myaccount.google.com/apppasswords)\n\n## Table of Contents\n\n- [Prerequisites](#prerequisites)\n- [Screenshots](#screenshots)\n- [User Database Functions](#user-database-functions)\n- [UI Functions](#ui-functions)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Contributing](#contributing)\n\n## Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n\n- `tkinter`: You can install tkinter using `pip install tkinter`.\n- `customtkinter`: You can install customtkinter using `pip install customtkinter`.\n- `pycountry`: You can install pycountry using `pip install pycountry`.\n- `Pillow`: You can install Pillow using `pip install Pillow`.\n\n## Screenshots\n![Screenshot 1](https://github.com/didis97/CustomTkinter-Login-Registration/assets/116670695/612f6670-2c69-449a-b939-60bcaeb4e49b)\n![Screenshot 2](https://github.com/didis97/CustomTkinter-Login-Registration/assets/116670695/0f2bf83d-fa3a-4532-acba-5a51d06e3b3e)\n![Screenshot 3](https://github.com/didis97/CustomTkinter-Login-Registration/assets/116670695/32c01453-6e29-4c76-948b-e8d6a898b1ea)\n![Screenshot 4](https://github.com/didis97/CustomTkinter-Login-Registration/assets/116670695/455a038b-72ed-42f4-9119-9205b00bdf97)\n![Screenshot 5](https://github.com/didis97/CustomTkinter-Login-Registration/assets/116670695/b1037e9f-0591-4ef3-b7b4-79fd9f05496a)\n![Screenshot 6](https://github.com/didis97/CustomTkinter-Login-Registration/assets/116670695/cba1b69a-774a-4629-b380-807f71122eda)\n\n## User Database Functions\n\nThe following functions are used for managing user data in a SQLite database.\n\n### `get_database_connection()`\n- Opens a database connection and returns the connection and cursor.\n\n### `close_database_connection(db)`\n- Closes the provided database connection.\n\n### `register_user(first_name, last_name, country, username, email, password, security_question, security_answer)`\n- Registers a new user with the provided information.\n- Returns `True` for successful registration, or `False` if the username or email is already in use.\n\n### `check_login(username, password)`\n- Checks if the provided username and password match a record in the Users table.\n- Returns `True` for a successful login, or `False` for an unsuccessful login.\n\n### `email_exists(email)`\n- Checks if an email address exists in the Users table.\n- Returns user data if the email exists, or `None` if not found.\n\n### `update_password(email, temporary_password)`\n- Updates the user's password with a temporary password.\n- Returns `True` for a successful password update, or `False` for a failure.\n\n### `get_security_question(email)`\n- Retrieves the security question associated with the given email address.\n- Returns the security question or `None` if the email is not found.\n\n### `check_security_answer(email, provided_answer)`\n- Checks if the provided security answer matches the stored security answer associated with the email address.\n- Returns `True` if the security answer matches, or `False` if it does not.\n\n### `is_valid_email(email)`\n- Validates if the provided email address follows the standard email format.\n- Returns `True` for valid email addresses, or `False` for invalid ones.\n\n### `is_valid_chars(input_string)`\n- Validates if the provided characters are english without spaces.\n\n### `is_valid_chars_space(input_string)`\n- Validates if the provided characters are english spaces allowed.\n\n### `generate_temporary_password(length=8)`\n- Generates a random temporary password of the specified length (default is 8 characters).\n\n### `send_password_reset_email(email, temporary_password)`\n- Sends a password reset email to the provided email address with the temporary password.\n\n## UI Functions\n\nThe following functions are used for UI-related tasks.\n\n### `test_buttons()`\n- A placeholder function to test button functionality.\n\n### `toggle_password(p_block, show_password_var)`\n- Toggles the visibility of a password entry field based on a Boolean variable.\n\n### `get_countries()`\n- Retrieves a list of country names sorted in alphabetical order.\n\n\n## Installation\n\nTo install CustomTkinter-Login-Registration, follow these steps:\n\n1. Clone this repository:\n\n   ```bash\n   git clone https://github.com/didis97/CustomTkinter-Login-Registration.git\n\n2. Install Imports:\n\n   ```bash\n   pip install tkinter customtkinter pycountry Pillow\n\n## Configuration\n\nBefore using the application, configure the `config.py` file with your email and SMTP server details.\n\n## Contributing\n\nContributions are welcome! Please feel free to open an issue or create a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfunkz%2Fcustomtkinter-login-registration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfunkz%2Fcustomtkinter-login-registration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfunkz%2Fcustomtkinter-login-registration/lists"}