Vitae is a CV and resume manager designed to help you organize, update, and share your professional profiles with ease.
Find a file
dunossauro ab7f4a5e90 Merge pull request 'Starting a changelog system' (#16) from chore/changelogs into main
Reviewed-on: #16
Reviewed-by: Vicente E. R. Marçal <vicente.marcal@gmail.com>
2025-10-13 15:09:46 -03:00
changelogs Starting a changelog system 2025-10-12 22:46:55 -03:00
docs Starting a changelog system 2025-10-12 22:46:55 -03:00
tests Refactor pytest config, enforce 80% coverage, and add basic FastAPI tests (#12) 2025-10-08 13:10:30 -03:00
vitae Refactor pytest config, enforce 80% coverage, and add basic FastAPI tests (#12) 2025-10-08 13:10:30 -03:00
.gitignore Refactor pytest config, enforce 80% coverage, and add basic FastAPI tests (#12) 2025-10-08 13:10:30 -03:00
CHANGELOG.md Starting a changelog system 2025-10-12 22:46:55 -03:00
LICENSE Initial commit 2025-10-04 17:33:33 -03:00
mkdocs.yml Starting a changelog system 2025-10-12 22:46:55 -03:00
pyproject.toml Starting a changelog system 2025-10-12 22:46:55 -03:00
README.md Merge branch 'main' into feature/docs 2025-10-09 20:38:32 -03:00
settings.toml core: Initialized Vitae project structure with FastAPI and its firsts configurations. 2025-10-04 17:55:21 -03:00
uv.lock Starting a changelog system 2025-10-12 22:46:55 -03:00

Vitae

Vitae is a CV and resume manager designed to streamline the organization, updating, and sharing of your professional profiles.

It offers seamless integration with the Fediverse, enabling decentralized sharing and discovery of resumes across federated networks.

Features

  • Manage multiple CVs and resumes from a single interface
  • Quickly update and export your profiles
  • Securely share your professional information through the Fediverse
  • Retain full control over your career data while expanding your network

Project Overview

Vitae is developed using FastAPI and adheres to modern Python best practices. This project is currently in early development (v0.1.0) and actively encourages contributions.

Installation

Prerequisites

  • Python 3.13
  • uv — a high-performance Python package and project manager written in Rust

Setup

  • Clone the repository:
mkdir -p vitae-project
cd vitae-project
git clone https://bolha.dev/vitae/backend-vitae .
  • Use uv to synchronize and install project dependencies:
uv sync

Development

Vitae utilizes the following development tools:

  • ruff: for linting and code formatting
  • pytest: for running tests
  • taskipy: for managing common development tasks

Common Tasks

Execute these commands to perform typical development activities:

# Run the linter
uv run task lint

# Format codebase
uv run task format

# Execute tests
uv run task test

# Run tests with coverage reporting
uv run task test-cov

# Launch the development server
uv run task run

# Launch the documentation server
uv run task doc-serve

Project Structure

vitae-project/
├── LICENSE
├── pyproject.toml
├── README.md
├── settings.toml                   # Configuration file for Dynaconf
├── uv.lock
├── docs                            # Documentation files
├── mkdocs.yml                      # Configuration file for MkDocs
├── vitae
│   ├── app.py                      # FastAPI application entry point
│   ├── blueprints/                 # API endpoints, routes, and resource modules
│   │   ├── cli/                    # Command Line Interface
│   │   │   ├── cli.py
│   │   │   └── __init__.py
│   │   └── __init__.py
│   └── extensions/                 # Modular components
│       ├── database/
│       │   └── db.py               # Database connection logic
│       └── __init__.py
└── tests/                         # Unit and integration tests
    ├── conftest.py
    └── __init__.py

Contributing

We welcome contributions! To contribute, please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git switch -c feature/amazing-feature)
  3. Implement your changes
  4. Run tests to verify your changes (uv run task test)
  5. Commit your changes (git commit -m 'Add some amazing feature')
  6. Push your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request against the main branch

Coding Standards

  • Follow PEP 8 style guidelines
  • Use single quotes for string literals
  • Limit lines to 120 characters
  • Write tests for new features and bug fixes
  • Run the linter before committing (uv run task lint)

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.