This Email Client is a powerful and user-friendly email application developed using Python, Flask, and SQLAlchemy. It provides a seamless communication experience, allowing users to create accounts and send emails or messages to other users.
With this Email Client, you can stay connected for both personal and professional use. For it offers a range of features to enhance email communication by ensuring efficiency and convenience.
- User-Friendly Interface: A polished an intuitive interface that makes navigating and managing emails and messages easy
- Account Creation: Simple steps to create an account to access all the functionalities and benefits of the email client
- Compose and Send Emails: Compose and send emails to individuals with ease
- Attachments: Can attach documents or images to your emails
- Inbox Management: Find any email through a search bar or filter emails by read/unread
- Todo List: Manage your tasks effectively with a built-in todo list feature, allowing more organization and productivity
- Chat Feature: Along with an email system, you can stay connected with others through a chat system
- Jeffrey Lam (@klam20)
- Bryant Bautista (@bryantbautista)
- Anthony Nguyen (@antiscoder)
- Nicole Nacua (@nnacua)
USING LINUX TERMINAL " > " denotes a Linux command
Install Python 3 and PIP
> sudo apt update> sudo apt install python3
> sudo apt install python3-pip
Setting up virtualenv
> pip install virtualenvCreate and enter into a directory which you want the virtual environment to be in
Create the environment using > virtualenv [choose a name here for your virtualenv]
Activate the environment using > source [name of virtualenv]/bin/activate
If you want to deactivate the environment use > deactivate
Clone the repository
Create a directory that you want to clone the repository intoInside the directory run > git clone https://github.com/klam20/CMPE131-EmailClient.git
Install required dependencies within virtualenv
Change directory to the cloned directory CMPE131-EmailClientInstall libraries using > pip install -r requirements.txt
Using the application
Run the application using > python3 run.pyStop the application with CTRL + C
Once you have followed the installation and setup process, you should see the list of libraries used in requirements.txt
List of Libraries Used
- alembic
- blinker
- click
- dnspython
- email-validator
- Flask
- Flask-Login
- Flask-Mail
- Flask-Migrate
- Flask-SQLAlchemy
- Flask-Uploads
- Flask-WTF
- greenlet
- idna
- itsdangerous
- Jinja2
- Mako
- MarkupSafe
- Pillow
- SQLAlchemy
- typing_extensions
- Werkzeug
- WTForms
- Requests
Account Management
This section covers the various actions related to managing user accounts. Here are the instructions for each:- To register for an account, go to the home page and click the “Sign-up” button
- Create an email address and password to complete registration
- Once you have a registered account, use the login feature to access other functionalities.
- Enter your registered email and password to log in
- To log out, locate the "Log-out" button in the navigation bar and click on it
- Logging out will terminate your current session
- If you wish to delete your account, find the "Delete Account" button in the email page navigation bar
- Click on the button to initiate the account deletion process
Email Management
This section provides instructions for managing emails within the application. Here are the instructions for each action:- Locate the compose button on the bottom right corner
- Click on the compose button to create and send emails
- To send an email, provide the required information such as the recipient's email address, subject, and content
- To include attachments with the email, click on the attachment icon or look for an “Choose File” button
- The inbox provides separate viewing modes for sent and received emails
- To view an email, click on it from the list in the inbox
- Clicking on an email will allow you to view its contents, including the sender, subject, and message
- To search an email, first, click on the search bar
- Then the user inputs text that they want search within their existing emails
- Clicking the submit will prompt the system to search based on user input
- Then, the user can click on "received" or "sent" to see emails that matched the input
- To delete an email, first, view its contents by clicking on it
- Within the email view, locate the "Delete Email" button
- Clicking the "Delete Email" button will remove the email from your view and potentially move it to a designated trash or deleted items folder
Chat Management
This section covers the management of chat messages within the application. Here are the instructions for each action:-
By selecting the create message button, you can enter the user you want to message
-
You then select the conversation slot with the user’s email address
-
Type message in the input field and press send to see your message displayed in the chat window
- By clicking on a received chat message, the user is able to react with certain emojis
- You are able to delete messages and will be no longer visible to the other participant
To Do List Management
This section covers the management of the To-Do List feature. Here are the instructions for each action:- On the left side of the email page, locate the dedicated section for the To-Do List
- Fill out the task description and due date fields
- Press the "+" button to add the task to the list
- To mark a task as done, simply click on the task in the list
- The task will be visually indicated as completed
- Each task in the list will have an "x" button next to it
- Clicking the "x" button will delete the corresponding task from the list
- Next to each task in the list, there is an edit button.
- Clicking the edit button will activate the task's edit mode.
- In edit mode, you can modify the task's description and due date.
- To save the changes, click the edit button again, and the task will exit edit mode.






















