72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# Calendar Generator Flask App
|
|
|
|
This Flask application generates a web-based calendar view with images and associated texts for each day. It's designed to read images and texts from specified directories and display them in a calendar format. The web-based pages can be printed to a pdf-file. This is easy, because every browser application has the option to print a page to a pdf-file. Per DIN A4 page 4 days get displayed.
|
|
|
|
## Setup
|
|
### Prerequisites
|
|
- Python 3.x
|
|
- Flask
|
|
- Basic understanding of Python and Flask
|
|
|
|
### Installation
|
|
|
|
1. **Clone or Download the Repository**
|
|
|
|
Clone this repository if you're familiar with Git, or simply download it as a ZIP file and extract it.
|
|
|
|
2. **Install Required Packages**
|
|
|
|
Flask is required and can be installed via pip:
|
|
```bash
|
|
pip install Flask
|
|
``````
|
|
|
|
### Folder Structure
|
|
Your project directory should be structured as follows:
|
|
|
|
```yaml
|
|
|
|
project_folder/
|
|
│ app.py
|
|
│ README.md
|
|
│
|
|
├───static/
|
|
│ └───images/
|
|
│ │ 2024-01-15.jpg
|
|
│ │ 2024-01-16.png
|
|
│ ...
|
|
│
|
|
└───texts/
|
|
│ 2024-01-15.txt
|
|
│ 2024-01-16.txt
|
|
...
|
|
```
|
|
- `app.py`: Main Flask application file.
|
|
- `static/images/`: Directory for storing calendar images. Images should be named `YYYY-MM-DD.extension`.
|
|
- `texts/`: Directory for storing text files corresponding to each day, named `YYYY-MM-DD.txt`.
|
|
|
|
### Running the Application
|
|
|
|
1. Navigate to the project folder in your command line or terminal.
|
|
2. Execute the Flask application:
|
|
```bash
|
|
python app.py
|
|
``````
|
|
3. Access the calendar in a web browser at `http://127.0.0.1:5000/`.
|
|
|
|
## How It Works
|
|
|
|
- The application serves a web page displaying a calendar.
|
|
- Each day on the calendar can have an image and a text associated with it.
|
|
- Images are read from `static/images/`, and text files are from `texts/`.
|
|
- Files are matched based on their filenames, formatted as `YYYY-MM-DD`.
|
|
- The calendar is dynamically generated based on available images and texts.
|
|
- If an image or text is not available for a specific day, it will be displayed without that content.
|
|
|
|
## Notes
|
|
|
|
- Text for each day should be concise. Lengthy texts may be truncated in the display to maintain the layout of the calendar.
|
|
- You can customize the appearance and behavior of the calendar by modifying the HTML, CSS, and Flask application logic.
|
|
|
|
## Copyright and license
|
|
This code is for my very good friend Felix W.. Code copyright 2024 Lorenz B. |