|
feat: complete Geekbrain.io portfolio implementation
Implemented full portfolio website with: - FastAPI async backend with SQLAlchemy 2.0 - Jinja2 templates with steampunk professional design - MariaDB integration with Contact model - GitBucket API integration with caching (5min TTL) - reCAPTCHA v2 protection on contact form - Gmail SMTP email notifications (async) - Docker deployment with docker-compose - Comprehensive test suite (17 tests passing) - Automated installation script (install.sh) - Complete documentation (README, DEPLOY.md, manual testing) Key fixes: - Added init_db() on startup to auto-create tables - Fixed gitbucket.py: str(settings.gitbucket_url) for httpx - Added jinja2 to requirements.txt - Added startup event in main.py - Corrected template directory paths - Fixed DATABASE_URL encoding for @ in password - Updated docker-compose to use port 8700 Ready for deployment on NAS with Docker + Nginx Proxy Manager. Co-Authored-By: Claude Opus 4.6 <[email protected]> |
|---|
|
|
| Archive.tar.gz 0 → 100644 |
|---|
|
Not supported
|
| DEPLOY.md 0 → 100644 |
|---|
| app/database.py |
|---|
| app/exceptions.py 0 → 100644 |
|---|
| app/main.py 0 → 100644 |
|---|
| app/routes/__init__.py 0 → 100644 |
|---|
| app/routes/about.py 0 → 100644 |
|---|
| app/routes/home.py 0 → 100644 |
|---|
| app/routes/projects.py 0 → 100644 |
|---|
| app/schemas.py |
|---|
| app/services/__init__.py 0 → 100644 |
|---|
| app/services/email.py 0 → 100644 |
|---|
| app/services/gitbucket.py 0 → 100644 |
|---|
| app/templates/about.html 0 → 100644 |
|---|
| app/templates/base.html |
|---|
| app/templates/index.html 0 → 100644 |
|---|
| app/templates/projects.html 0 → 100644 |
|---|
| docker-web-logs.txt 0 → 100644 |
|---|
| docker/docker-compose.yml |
|---|
| docs/superpowers/plans/2025-03-21-geekbrain-portfolio-implementation.md 0 → 100644 |
|---|
|
Too large (Show diff)
|
| docs/superpowers/specs/2025-03-21-geekbrain-portfolio-design.md 0 → 100644 |
|---|
| install.sh 0 → 100755 |
|---|
| public/assets/images/Geekbrain-io.png 0 → 100644 |
|---|
|
|
| public/assets/images/README.md 0 → 100644 |
|---|
| requirements.txt |
|---|
| tests/conftest.py |
|---|
| tests/test_integration/__init__.py 0 → 100644 |
|---|
| tests/test_integration/test_contact_flow.py 0 → 100644 |
|---|
| tests/test_routes/__init__.py 0 → 100644 |
|---|
| tests/test_routes/test_about.py 0 → 100644 |
|---|
| tests/test_routes/test_home.py 0 → 100644 |
|---|
| tests/test_routes/test_projects.py 0 → 100644 |
|---|
| tests/test_services/__init__.py 0 → 100644 |
|---|
| tests/test_services/test_email.py 0 → 100644 |
|---|
| tests/test_services/test_gitbucket.py 0 → 100644 |
|---|
| visual-companion.html 0 → 100644 |
|---|