Skip to content

lasicuefs/curricFilter

Repository files navigation

Vitae

Vitae Hero

Vitae is a Search Engine for Lattes Researchers.
This works by ingesting Lattes' XML files and storing them into a database.

At A Glance

With the built database, you can search for Researchers by name or ID and filters them by a lot of properties. This is also possible to export them to Lucy Lattes for graph creation or open their Curriculum on Orcid or Lattes itself.

Showcase

User Application

Guide

Non-Technical User

If you're already on a setted-up environment, with a running database, you may skip the Environment Setup and read the User Guide which covers the GUI Native-like application for non-technical users.

[!INFO] Se você é um usuário brasileiro e está em um ambiente já configurado, por favor, leia: Guia de Usuário.

Administrator

If you need to setup your environment, read Environment Setup and then the User Guide.

Developer

If you're a developer and wants to contribute to the project, read the Contributing document after have read both Environment Setup and User Guide.

Environment Setup

Requirements

This Python project is Poetry-based and this is required to have a deterministic environment and avoid dependency conflicts.

How to run it

1. Install Dependencies

$ poetry install

2. Setup vitae.toml

$ cp vitae.example.toml vitae.toml
# Now edit it to use your own settings

3. Activate Virtual Environment

$ poetry env activate

On Visual Studio Code: Ctrl + Shift + P, then search for: "Python: Select Interpreter" and choose the one from Poetry's isolated environment.

4. Bootstrap

Before running the application for the first time, complete these steps:

  1. Create the Database

Ensure your PostgreSQL database exists, using the same settings you specified in Environment Settings:

$ createdb <your-database> -U <your-user>
$ vitae bootstrap
  1. Add Your Curricula Repository

Place your curricula repository in the root directory of this project (at the same level as the source code).

Warning

Add your curricula repository to .gitignore to avoid accidentally uploading it to remote. Also, remember to have the same name on your vitae.toml file.

  1. Directory Structure

Your curricula's directory should look like this:

root
|-- <curricula>   # Your curricula repository
|    |-- 00
|    |-- 01
|    |-- 02
|    +-- ...
|
|-- logs
|-- scripts
|-- tests
|-- vitae
|-- ...

5. Ingest XMLs Curriculum

$ vitae ingest

Remember to install with poetry install before run as a script. Otherwise, you may run as python -m vitae.

6. Run Web UI

You may run the Web UI manually if you're a technical user and this brings some special functionalities, such as custom hosting, multiple workers or hot-reload, for development.

To run manually, you may use:

$ vitae web

By passing --production, you'll be hosting this on 0.0.0.0:8000 with 4 workers by default. Also, hot-reload is enabled by default for non-production runs.

If you want use your own custom settings, you may use:

$ uvicorn vitae.features.researchers.app:main

And pass your own flags, see FastAPI's and Uvicorn's documentations for more details.

7. Explore

To know more about each detail of this project, just open vitae and read the documentation for each feature, which includes the objective and architectural decisions for each one. The source code also provides documentation for crucial sections.

Tooling Recomentation

  1. DBA tools
  • Beekeeper Studio for SQL Queries. (Community ed. for Free)
  • ChartDB for Diagram visualization. (Self-hosted for free)
  • pgAdmin 4, general purpose. Comes with PostgreSQL. (Free)
  1. Python Linters, Formatters, Static Analysis
  • ruff linter and code formatter. (lightweight alternative)
  • ty Python type checking. (lightweight alternative)
  • Pylance VsCode's Extension as language server.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •