forked from vitae/backend-vitae
Vitae is a CV and resume manager designed to help you organize, update, and share your professional profiles with ease.
Reviewed-on: vitae/backend-vitae#13 Reviewed-by: Vicente E. R. Marçal <vicente.marcal@gmail.com> Co-authored-by: dunossauro <mendesxeduardo@gmail.com> Co-committed-by: dunossauro <mendesxeduardo@gmail.com> |
||
---|---|---|
tests | ||
vitae | ||
.gitignore | ||
LICENSE | ||
pyproject.toml | ||
README.md | ||
settings.toml | ||
uv.lock |
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
Project Structure
vitae-project/
├── LICENSE
├── pyproject.toml
├── README.md
├── settings.toml # Configuration file for Dynaconf
├── uv.lock
├── 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:
- Fork the repository
- Create a feature branch (
git switch -c feature/amazing-feature
) - Implement your changes
- Run tests to verify your changes (
uv run task test
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push your branch (
git push origin feature/amazing-feature
) - 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.