Pular para conteúdo

Requirements: ResearchDomain

1. Functional Requirements (FR)

FR-01: Person Management (Researchers)

  • FR-01-A: The system must allow creating a Researcher (Person) with name and zero or more emails.
  • FR-01-B: The system must allow retrieving a Researcher by ID.
  • FR-01-C: Researcher must store cnpq_url and google_scholar_url (optional, strings).
  • FR-01-D: Researcher must be associated with one or more KnowledgeAreas.
  • FR-01-E: Researcher must store a history of Academic Education (Formações), including title, Institution (Organization), start/end years, thesis title, Advisor (Researcher), Co-Advisor (Researcher), and knowledge areas.
  • FR-01-F: Academic Education must be categorized by Education Type (e.g., Graduation, Master, Doctorate).
  • FR-01-G: Researcher must store a list of Bibliographic Citation Names (names used in publications).
  • FR-01-H: Researcher must store a list of Language Proficiencies (Proficiências em Idiomas), where each proficiency includes the language and levels for Comprehension, Speaking, Reading, and Writing.
  • FR-01-I: Researcher must store a list of Awards (Prêmios/Títulos).
  • FR-01-J: Researcher must store a history of Scientific Articles (Artigos), including title, DOI, year, journal/conference details, and associated authors (Researchers).

FR-02: Team Management (Research Groups)

  • FR-02-A: The system must allow creating a ResearchGroup (Team).
  • FR-02-B: The system must allow adding a Researcher to a ResearchGroup with a specific Role (TeamMember).
  • FR-02-C: A ResearchGroup must have at least one Researcher.
  • FR-02-D: ResearchGroup must be associated with a Campus.
  • FR-02-E: ResearchGroup must store cnpq_url and site (URI format).
  • FR-02-F: ResearchGroup must be associated with one or more KnowledgeAreas.
  • FR-02-G: ResearchGroup must have one or more Leaders (identified by "Leader" role).
  • FR-02-H: Membership/Leadership (TeamMember) must have a defined start_date and optional end_date.

FR-03: Organization Management (Universities)

  • FR-03-A: The system must allow creating a University (Organization).

FR-04: Organizational Unit Management (Campuses)

  • FR-04-A: The system must allow creating a Campus (OrganizationalUnit) within a University.
  • FR-04-B: A Campus must belong to a University.

FR-05: Knowledge Area Management

  • FR-05-A: The system must allow creating a KnowledgeArea with a unique name.
  • FR-05-B: The system must allow linking a KnowledgeArea to one or more Initiatives.
  • FR-05-C: The system must allow linking an Initiative to an ExternalResearchGroup (Team).
  • FR-05-D: The system must allow associating an Initiative with a Demandante (Organization).
  • FR-05-E: The system must allow creating an Advisorship, which links an Initiative to a student (Person) and a supervisor (Person) for a specific period.
  • FR-05-F: An Advisorship can optionally be associated with a Fellowship. If no fellowship is linked, the advisorship is considered "voluntary".
  • FR-05-G: The Fellowship entity must store name, description, and value.
  • [x] FR-05-H: A Fellowship must be associated with an Organization that acts as its Sponsor.
  • [x] FR-05-I: The system must allow marking an Advisorship as cancelled.
  • [x] FR-05-J: The system must store the cancellation_date for a cancelled Advisorship.
  • [x] FR-05-K: An Advisorship must allow the definition of an Examination Board (Banca).
  • [x] FR-05-L: A Board is composed of the Supervisor, the Student, and Board Members.
  • [x] FR-05-M: All members of the Board must be registered Researchers.
  • [x] FR-05-N: An Advisorship must be associated with a Research Group.

FR-06: Role Management

  • FR-06-A: The system must support the Role entity from eo_lib.
  • FR-06-B: The system must allow creating custom roles (e.g., "Leader", "Researcher", "Technician").

2. Non-Functional Requirements (NFR)

NFR-01: Architecture

  • NFR-01-A: The system must strictly follow MVC + Service + Repository layers, using libbase as core.
  • NFR-01-B: The Domain layer must have no dependencies on the Infrastructure layer (DIP).

NFR-02: Quality

  • NFR-02-A: All public methods must be type-hinted.
  • NFR-02-B: Data validation using Pydantic.

3. Constraints

  • Must use PostgreSQL.
  • Must use SQLAlchemy.
  • Must inherit/use patterns from libbase.

FR-07: Research Production Management

  • FR-07-A: The system must allow creating a Research Production, including title, year, and authors (Researchers).
  • FR-07-B: Scientific productions must be categorized by Production Type: BOOK, BOOK_CHAPTER, SOFTWARE, or OTHER.
  • FR-07-C: BOOK type must store publisher, isbn, and edition.
  • FR-07-D: BOOK_CHAPTER type must store book_title, publisher, isbn, and pages.
  • FR-07-E: SOFTWARE type must store version, platform, and link.
  • FR-07-F: A Research Production must allow multiple authors (Researchers).