Update README, new features

Closes: #60
This commit is contained in:
Edward Betts 2023-11-23 21:22:44 +00:00
parent 0a33c069b0
commit 26a355aa19

View file

@ -1,56 +1,74 @@
# Personal agenda web app
This is a Python script that serves as a personal agenda web app. It provides
various information and reminders, including financial dates, holidays, market
openings, and more. You can run this script to get an overview of important
events and data relevant to your schedule and interests.
## Overview
## Requirements
The Agenda project is a comprehensive tool designed to keep track of various events and important dates, from holiday schedules to waste collection dates. It's an all-in-one solution for staying on top of your personal agenda.
### Features
- **Event Management:** Handles various types of events like birthdays, holidays, travel itineraries, conferences, and waste collection schedules.
- **Timezone Handling:** Supports conversion and management of events across different time zones.
- **Data Sources Integration:** Integrates with various sources like the UK and US holiday calendars, waste collection schedules, and space launch information.
- **Custom Event Scheduling:** Allows defining custom recurring events using RRULE strings.
- **Dashboard View:** Provides a web interface to display all upcoming events in an organized manner.
## Installation
### Prerequisites
- Python 3
- Required Python modules (install them using pip):
- dateutil
- exchange_calendars
- holidays
- pandas
- pytz
- requests
- Flask
- Other dependencies listed in `requirements.txt`
## Features
### Setup
The agenda web app provides the following features and information:
1. Clone the repository:
```
git clone https://git.4angle.com/edward/agenda
```
2. Navigate to the project directory:
```
cd agenda
```
3. Install required Python packages:
```
pip install -r requirements.txt
```
- **GBP to USD Exchange Rate**: It fetches the current GBP to USD exchange rate
with caching to minimize API calls.
## Configuration
- **Next Economist Issue**: Shows the date of the next Economist newspaper
publication.
- Configure the `config` file with the necessary API keys and data directories.
- Personal data such as birthdays, accommodation details, and travel plans should be placed in the specified data directory.
- **Next UK Bank Holiday**: Provides the date and title of the next UK bank
holiday.
## Usage
- **Next US Holiday**: Displays the date and title of the next US holiday.
To run the web server:
- **Next UK General Election and US Presidential Election**: Shows the dates of
the next UK general election and US presidential election.
```bash
python web_view.py
```
- **SpaceX Launch Schedule**: Lists upcoming SpaceX launches with details.
Access the web interface through a browser at `http://localhost:5000/`.
- **Stock Markets Opening/Closing Times**: Provides information about stock
market opening and closing times for London and the US.
### Modules Overview
- **Next Clock Change**: Shows the next time the clocks change for both the UK
and the US.
The project is structured into several modules, each handling a specific aspect of the agenda:
- **Accommodation, Birthday, Calendar, Conference**: Manage specific event types.
- **FX, GWR, Economist**: Integrate with external data sources for financial information, railway schedules, and publication dates.
- **Sun, TheSpaceDevs, Travel**: Calculate sunrise/sunset times, track space launches, and manage travel plans.
- **Waste Schedule, UK Holiday**: Handle waste collection schedules and UK holidays.
### Data Management
The `data.py` script is central to the functioning of the Agenda project. It compiles events from various sources and presents them in a unified format. Edit this file to modify or add new event sources.
## Customization
You can customize the script to add or remove features and modify data sources
as needed.
You can customize the script to add or remove features and modify data sources as needed.
## License
This project is licensed under the MIT License. Feel free to use, modify, and
distribute it as per the license terms. See the [LICENSE](LICENSE) file for details.
This project is licensed under the MIT License. Feel free to use, modify, and distribute it as per the license terms. See the [LICENSE](LICENSE) file for details.
## Contact