https://github.com/tameronline/llol_step07
https://github.com/tameronline/llol_step07
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tameronline/llol_step07
- Owner: TamerOnLine
- License: mit
- Created: 2025-06-21T01:59:47.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-21T04:04:54.000Z (about 1 year ago)
- Last Synced: 2025-06-21T05:24:04.672Z (about 1 year ago)
- Language: Python
- Size: 29.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# llol_step07
[](https://github.com/user/repo/actions)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://flask.palletsprojects.com/en/2.0.x/)



---
## π Overview
**llol_step07** is the seventh milestone of an open-source dynamic resume builder aimed at empowering multilingual content creation, real-time editing, and customization. It's built for developers who need structured, localized, and exportable resume content managed through a Flask-based admin interface.
---
### π¦ Clone & Setup
Follow these steps to clone the repository and set up your development environment:
```bash
git clone https://github.com/TamerOnLine/llol_step07.git # Clone the project repository from GitHub
cd llol_step07 # Navigate into the project directory
python -m venv venv # Create a virtual environment named 'venv'
.\venv\Scripts\Activate # Activate the virtual environment (Windows CMD)
python -m pip install --upgrade pip # Upgrade pip to the latest version
pip install -r requirements.txt # Install all required dependencies
```
#### π‘ Tip
> If you're using PowerShell, replace the activation command with:
> ```powershell
> .\venv\Scripts\Activate.ps1
> ```
#### π¬ Demo
> π½οΈ The video above shows the complete setup process for the `llol_step07` repository, from cloning to installing dependencies.
---
### π Internationalization: Running the `i18n_translate` Module
To automatically generate or update translation files for your project, run the following command:
```bash
py -m main.i18n_translate
```
This module extracts translatable strings, creates `.po` files for each supported language (if they don't exist), and optionally translates them using automated tools such as `deep-translator`.
#### π Output
- `translations/` folder with updated `.po` files per language.
- Automatic generation of `.pot` template file based on source code and templates.
#### π¬ Demo
>π½οΈ This tool streamlines the i18n workflow by integrating extraction, translation, and file generation in a single command.
---
## π Features
- π Multi-language support using `Flask-Babel`
- π Automatic translation using `deep-translator`
- π§Ύ Live editing of sections, paragraphs, and fields
- ποΈ Admin dashboard for dynamic content management
- π PostgreSQL as the primary database
- π¨ Ready for resume theming and customization
---
## π§© Database Schema
The resume structure is built dynamically using the following tables:
- `ResumeSection`: Top-level sections (e.g., Education, Work Experience)
- `ResumeParagraph`: Paragraphs under each section with `field_type`
- `ResumeField`: Key-value pairs inside each paragraph; supports multilingual content
- `Setting`: Stores design and display options as JSON
- `LanguageOption`: Manages supported languages
- `NavigationLink`: Handles sidebar/menu navigation
A ResumeSection contains multiple ResumeParagraphs, and each ResumeParagraph includes multiple ResumeFields.
---
### π¨ Custom Styling via Settings
You can control the appearance of your resume using the admin panel:
- **Section Title Styling**: font-size, color, weight
- **Paragraph Styling**: font-size, color
- **Body Font**: custom font stack
These are stored as JSON in the `Setting` table and dynamically applied to your resume.
---
### ποΈ Key Files
| File | Purpose |
|------|---------|
| `main_routes.py` | Public routes (home, index, language selector) |
| `admin_builder_routes.py` | Admin: section CRUD |
| `admin_paragraph.py` | Admin: paragraph CRUD |
| `admin_field.py` | Admin: field CRUD and reordering |
| `i18n_translate.py` | Auto translation and `.po` file generation |
| `run.py` | App bootstrap with DB creation |
### π Running the Flask App
To start the development server, run the following command:
```bash
py -m run
```
This will:
- Connect to the PostgreSQL admin database.
- Create the working database `postgreslebenslauf` (if not already existing).
- Create required tables.
- Launch the Flask app in development mode with debugging enabled.
#### π¬ Demo
> π½οΈ The animation above shows how the application is launched and confirms successful connection to the database.
---
## π Project Structure
```bash
main/
βββ models.py
βββ routes.py
βββ templates/
β βββ base.html.j2
βββ static/
β βββ css/resume.css
βββ translations/
βββ ...
```
---
## π§ͺ Running Tests
```bash
pytest
```
> Coming soon: Unit tests for translation, section logic, and UI views.
---
## πΊοΈ Roadmap
- β
Step 07: Translation engine + dynamic sections
- βοΈ Step 08: Admin interface for language settings
- π Step 09: Add authentication for admin users
- π Step 10: Export resume to PDF
---
## π§° Built With
- [Flask](https://flask.palletsprojects.com/)
- [SQLAlchemy](https://www.sqlalchemy.org/)
- [Flask-Babel](https://python-babel.github.io/flask-babel/)
- [PostgreSQL](https://www.postgresql.org/)
- [deep-translator](https://pypi.org/project/deep-translator/)
---
## π License
This project is open-source under the MIT License.
Feel free to explore and build upon it.
---
## π¨βπ» Developer
By [@TamerOnLine](https://github.com/TamerOnLine)
Under the umbrella of [Flask University](https://github.com/Flask-University)