Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nkosi-tauro/contactlist


https://github.com/nkosi-tauro/contactlist

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

Rubiks Contact List


Github top language

Github language count

Repository size

License


About   |  
Technologies   |  
Requirements   |  
Usage   |  
License   |  
Author


## :dart: About ##

Welcome to the Rubiks Contact List!
This is a simple contact list GUI application with basic CRUD functionality built using python and tkinter.
It allows the user to add, sort, edit, delete and search for contacts. There is no persistent storage, a dictionary is used to temporarily store the contacts in Key(contact name) and Value(contact number) pairs.

## :rocket: Technologies ##

The following tools were used in this project:

- [Python](https://www.python.org/)
- [tKinter](https://www.tkinter.org/)

## :white_check_mark: Requirements ##

Before starting :checkered_flag:, you need to have [Python 3.8+](https://www.python.org/) and [git](https://git-scm.com/) installed.

Note : tKinter comes with Python 3.8+ by default. If you are using an older version of Python or if tkinter is not found, you need to install tKinter separately.

```bash
Linux:
$ sudo apt-get install python3-tk

Mac:
$ python3 -m pip install tkinter

Windows:
$ pip install tkinter
```

## :checkered_flag: Using the Application ##

Rubiks Contact List is a simple contact list GUI application with basic Create/Add Read/Display Update/Edit Delete/Remove (CRUD) functionality built using python and tkinter.
To start using the application, follow the instructions below to first install and run the application, then you can add, sort, edit, delete and search for contacts.(See related instructions below)

📸DEMO Image with Captions

![Demo](images/guic.jpeg)

1. Input Fields
2. Display List
3. Add Contact button
4. Search button
5. Remove Contact button
6. Edit Contact Button
7. Sort Contact Button
8. Clear Input Button
9. Exit Program Button


**Instructions**:

Installing and Running the application

```bash
# Clone this project
$ git clone https://github.com/nkosi-tauro/contactlist

# Access the project folder
$ cd contactlist

# Run the project in the terminal
Linux/Mac:
$ python3 contactlist.py

Windows:
$ python contactlist.py
```


Adding New Contacts


To Add a new contact :

1. Enter value in the Contact Name and Contact Number fields at the top of the application window
2. Select the Add Contact button located next to the Contact Number field.
3. Accept the prompt to add the new contact by clicking the OK button when prompted or decline to add by clicking Cancel.


Editing Contacts


To Edit a contact : (contact needs to be selected from the displayed list)

1. Select a contact from the displayed list
2. Edit the Contact Number Value using the Contact Number field.
3. Click the Edit Contact button.
4. Accept the prompt to edit the contact by clicking the OK button when prompted or decline to edit by clicking Cancel.


Deleting Contacts


To Delete a contact : (contact needs to be selected from the displayed list)

1. Select a contact from the displayed list
2. Click the Remove Contact button.
3. Accept the prompt to delete the contact by clicking the OK button when prompted or decline to delete by clicking Cancel.


Searching for Contacts


To Search for a contact :

1. Enter a value in the Search field. (Needs to be the contact name (case sensitive))
2. Click the Search Button.
3. Accept the prompt to search the contact name by clicking the OK button when prompted or decline to search by clicking Cancel.


Sorting Contacts


To Sort the contacts : (contacts will be sorted alphabetically)

1. Click the Sort Contacts button.
2. Accept the prompt to sort the contacts by clicking the OK button when prompted or decline to sort by clicking Cancel.


Exiting The Application


To Exit the application :

1. Exit the application by clicking the Exit Program button.
2. Accept the prompt to exit the program by clicking the OK button when prompted or decline to exit by clicking Cancel.

### 🧪 Testing ###

The unittest module is used to test the application. It is part of the Python standard library.
The following is a list of the tests that were performed on the application:
1. Functional Tests - used to test the core application functionality such as the validation methods, the display of the list, the addition of new contacts, the removal of contacts, the editing of contacts, the search of contacts and the sorting of contacts.
2. Unit Tests - used to test the individual components of the application. In this case, the unit tests were performed on the add_contact and delete_contact functions.

Testing the application (Unit Tests)

After installing and running the application, you can test it by opening the application in the terminal and typing the following command:

```bash
# Run the Unit Tests
Linux/Mac:
$ python3 -m unittest test

Windows:
$ python -m unittest test
```


## ✍️ References ##

The following references were used in this project:

* Tkinter :
Amos, D. (Mar 30, 2022) Python GUI Programming With Tkinter. _Real Python_. Available from: [Python GUI Programming With Tkinter](https://realpython.com/python-gui-tkinter/) [Accessed 11 May 2022]

* Testing :
Shaw, A. (Oct 22, 2018) Getting Started With Testing in Python. _Real Python_. Available from: [Getting Started With Testing in Python](https://realpython.com/python-testing/) [Accessed 14 May 2022]

## :memo: License ##

This project is under license from Mozilla Public License. For more details, see the [LICENSE](LICENSE.md) file.

Made with :heart: by Nkosilathi Tauro

 

Back to top