An open API service indexing awesome lists of open source software.

https://github.com/tameronline/cv-test


https://github.com/tameronline/cv-test

Last synced: 9 months ago
JSON representation

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**