This Python-based Desktop Application Automated Personal Assistant is designed to help users manage daily tasks, get news updates, fetch weather information, receive stock/crypto prices, and more. It features a graphical user interface (GUI) built using Tkinter and integrates with various APIs for added functionality.
With this assistant, users can:
• Manage tasks (add, edit, delete)
• Set reminders for breaks
• Send emails
• Fetch the latest news
• Fetch stock or cryptocurrency prices
• Get weather information based on the city name
• Give voice commands to interact with the assistant
• Add Tasks: Users can input task names, set priorities (Low, Medium, High), and specify due dates for each task.
• Edit Tasks: Modify the name, priority, or due date of any task.
• Delete Tasks: Remove tasks from the task list.
• View Tasks: Display all tasks with their names, priorities, and due dates.
• Send Emails: Allows users to send emails to a specified address. Users can provide a subject and body for the email.
• Email Validation: Ensures that the provided email address is valid before sending the email.
• Voice Interaction: Users can speak commands like "set reminder," "send email," "fetch news," and more.
• Speech Recognition: The assistant listens for commands through the microphone using SpeechRecognition.
• Stock Price: Retrieve real-time stock prices for a given stock symbol (e.g., AAPL for Apple).
• Crypto Price: Retrieve real-time cryptocurrency prices (e.g., Bitcoin, Ethereum) using the CoinGecko API.
Weather Fetching: Get the current weather data for any city worldwide, including temperature and weather conditions, using the OpenWeatherMap API.
Latest News: Fetch the top headlines from Hacker News and display them to the user.
Reminder for Breaks: Set recurring reminders to take a break at regular intervals (in minutes). Notifications will appear on the screen to remind the user.
This code is compatible with Python 3.6 or later.
To install the required libraries, run the following command:
pip install requests beautifulsoup4 plyer pyttsx3 SpeechRecognition schedule
• Tkinter: GUI framework for the user interface (usually pre-installed with Python).
• requests: For making HTTP requests to external APIs.
• beautifulsoup4: For scraping web pages (e.g., news headlines).
• plyer: For system notifications (used for reminders).
• pyttsx3: For text-to-speech functionality (speaking back to the user).
• SpeechRecognition: For voice command functionality.
• schedule: For scheduling tasks such as reminders.
• Clone or Download the Repository: You can either clone this repository using Git or download the code as a ZIP file.
• API Keys Required: Some features require external API keys to work. Make sure you obtain the necessary keys
• Set Email Credentials: You need to provide your email credentials to send emails using Gmail. Set up environment variables to store your email and password securely and run the program.
Once the GUI is launched, you will be able to perform various actions via the interface or voice commands.
• Task Name: Enter the name of the task.
• Priority: Select the priority (Low, Medium, High).
• Due Date: Set the task's due date (in YYYY-MM-DD format).
• Add Task: Add a new task to the list.
• Edit Task: Modify an existing task by selecting it from the list and editing its details.
• Delete Task: Remove a task from the list.
Click the Voice Command button or say a command such as:
• "Set reminder"
• "Send email"
• "Fetch news"
• "What can you do?"
• “Fetch Weather”
• “Fetch Stock”
• “Fetch Crypto”
• “Add Task”
• “Exit”
Use the Fetch Stock/Crypto Price button to get real-time stock or crypto prices by entering their symbols.
Click the Fetch Weather button to get current weather information for any city by entering the city name.
Click the Fetch News button to get the latest headlines from Hacker News.
Click the Reminder button to set a reminder that will notify you to take breaks at regular intervals.
The Exit button will close the program.
The assistant includes basic error handling for common issues such as invalid input, network errors, and email sending problems. If any error occurs, it will be logged into a file called assistant.log.
• Email Issues: Make sure you have set up your Gmail account for sending emails. If you are using two-factor authentication, consider using an App Password.
• API Errors: If you receive errors related to APIs (e.g., weather, stock prices), make sure your API keys are correctly set and have valid access limits.