https://github.com/tameronline/cv-test
https://github.com/tameronline/cv-test
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tameronline/cv-test
- Owner: TamerOnLine
- License: mit
- Created: 2025-10-06T08:58:47.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-06T09:35:37.000Z (9 months ago)
- Last Synced: 2025-10-06T11:31:51.709Z (9 months ago)
- Language: Python
- Size: 323 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐งพ fastapi-streamlit-template
An advanced **Interactive Resume Builder** built with **FastAPI** (backend) and **Streamlit** (frontend).
It generates elegant, two-column resumes with full **Arabic (RTL)** support, dynamic themes, and modular sections.
---
## ๐ง Project Concept
**fastapi-streamlit-template** is an interactive web system designed to help users create, customize, and export professional resumes as PDF files.
It seamlessly combines a **FastAPI-powered backend** for PDF generation with a **Streamlit-based frontend** for real-time editing and customization.
Users can:
- Fill in personal and professional data using an intuitive interface.
- Choose from multiple modern themes.
- Generate a resume instantly in PDF format.
- Support Arabic, English, and German text.
- Save and reuse profile data anytime.
---
## โ๏ธ Technical Overview
### **1. Backend (FastAPI)**
- Generates dynamic PDFs using **ReportLab**.
- Modular structure of โblocksโ (e.g., header, projects, skills, education, languages).
- Full **RTL and Arabic font rendering**.
- Customizable themes and color palettes.
- Local asset system for fonts and icons (no external dependencies).
### **2. Frontend (Streamlit)**
- Multi-tab interface for editing sections:
*Basic Info, Skills, Projects, Education, Languages, Headshot, etc.*
- Interactive preview and instant generation.
- Communicates directly with FastAPI through REST endpoints.
### **3. Themes System**
- Configurable `.json` files defining colors, borders, fonts, and layout.
- Predefined themes: `default`, `modern`, `clean-white`, `bold-header`, `bold-panel`.
### **4. Profiles & Outputs**
- Automatically saves user profiles in `profiles/`.
- Stores generated PDF files in `outputs/`.
---
## โจ Key Competitive Features
| Feature | Description |
|----------|--------------|
| ๐จ **Two-column Layout** | Professional balance between information and design. |
| ๐ **Multilingual Support** | Arabic (RTL), English, and German text rendering. |
| ๐งฑ **Modular PDF Blocks** | Easily add or modify sections like Projects, Skills, or Contact Info. |
| ๐ผ๏ธ **Icons & Images Support** | Uses local assets for reliability and customization. |
| ๐พ **Profile Persistence** | Save and load user data with JSON profiles. |
| ๐ง **FastAPI ร Streamlit Integration** | Real-time editing with seamless backend generation. |
---
## ๐ Quick Start
```bash
# 1๏ธโฃ Install dependencies
pip install -r requirements.txt
# 2๏ธโฃ Run backend (FastAPI)
uvicorn api.main:app --reload
# 3๏ธโฃ Run frontend (Streamlit)
streamlit run streamlit/app.py
```
- FastAPI docs โ [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs)
- Streamlit UI โ [http://localhost:8501](http://localhost:8501)
---
## ๐ก Potential Use Cases
- ๐ **Students & Job Seekers** โ Create multilingual, modern resumes.
- ๐ข **Recruitment Agencies** โ Internal resume generator for applicants.
- ๐งโ๐ซ **Educational Platforms** โ Help students build their first CVs.
- ๐ป **Developers & Freelancers** โ Professional templates for portfolio resumes.
---
## ๐งฎ Economic & Feasibility Analysis
| Aspect | Assessment |
|---------|-------------|
| ๐ฐ **Development Cost** | Low to medium โ Python-based stack. |
| โ๏ธ **Operational Cost** | Very low โ deployable on Render, Hugging Face, or local servers. |
| ๐ **Monetization Potential** | High โ can be turned into a SaaS platform (custom themes, premium exports). |
| ๐ฅ **Target Audience** | Job seekers, universities, HR platforms, and freelancers. |
---
## ๐ Future Development Opportunities
1. Add **user authentication** and PostgreSQL-based persistence.
2. Create a **dashboard** to manage multiple resumes.
3. Implement a **real-time visual editor (WYSIWYG)**.
4. Allow **company branding and digital signatures** in PDFs.
5. Build a **React or Flutter** frontend alternative.
6. Integrate with **LinkedIn API** to auto-import profile data.
7. Add **AI-based resume analysis** and improvement suggestions.
---
## ๐งฉ Evaluation Summary
| Criteria | Score | Notes |
|-----------|--------|-------|
| ๐ก Innovation | โญโญโญโญโ | Unique integration of FastAPI and Streamlit for resume creation. |
| ๐ผ Feasibility | โญโญโญโญโญ | Highly achievable and scalable. |
| โ๏ธ Technical Stability | โญโญโญโญโญ | Well-structured modular codebase. |
| ๐ฅ๏ธ Usability | โญโญโญโญโ | Simple and intuitive UI. |
| ๐ Scalability | โญโญโญโญโญ | Easily extendable to a multi-user SaaS model. |
---
## ๐ Project Structure
```
fastapi-streamlit-template/
โโโ api/ # FastAPI backend (PDF generation)
โ โโโ pdf_utils/ # Fonts, icons, blocks, and themes loader
โ โโโ routes/ # API endpoints
โ โโโ utils/ # Helper parsers
โโโ streamlit/ # Frontend tabs & UI logic
โโโ themes/ # Theme configuration files (.json)
โโโ outputs/ # Generated PDFs
โโโ profiles/ # Saved user profiles
โโโ requirements.txt
โโโ LICENSE
โโโ README.md
```
---
## ๐ License
Licensed under the [MIT License](LICENSE) โ ยฉ 2025 **Tamer Hamad Faour**