Skip to content

Product Requirements Document

Neemias

1. Purpose

Neemias is an attendance application for small teams and school-like environments that need fast, reliable presence tracking for 3 to 5 concurrent users. The product is designed as a progressive web app that works in mobile and desktop browsers, can operate offline, and syncs changes when connectivity returns.

This document is the product-level source of truth. It defines the problem, the intended users, the product boundaries, and the business rules that must not be violated by implementation choices.

2. Product Vision

The product must make attendance tracking extremely simple for non-technical users while remaining safe, auditable, and easy to extend.

The system must:

  • Default to Brazilian Portuguese for all users.
  • Allow additional languages to be added later without redesigning the application.
  • Remain modular so future features such as reports, workflows, and student management can be added cleanly.
  • Support offline usage without losing user actions.
  • Prioritize accessibility and immediate visual feedback.
  • Enforce least privilege and LGPD requirements.

3. Problem Statement

Current attendance workflows are often slow, error-prone, and difficult for non-technical users. The product must reduce friction at the point of attendance capture, while also protecting personal data and preserving a reliable history of changes.

4. Target Users

RolePrimary NeedTypical Access
Admin (ADMIN)Manage students, attendance, reports, users, and settingsFull operational access
Chamador (CHAMADOR)Mark present and absent quicklyAttendance only
Relatórios (RELATORIOS)Review attendance reportsReports only
Cadastro (CADASTRO)Add students and maintain student recordsStudent creation, classes, nuclei
Responsável (RESPONSAVEL)View own children's recordsRead-only own students
Voluntário (VOLUNTARIO)Support classroom activitiesLimited student read, session view
Coordenação Kids (COORDENACAO_KIDS)Manage kids ministry operationsReports, student read, sessions
Administrativo Kids (ADMINISTRATIVO_KIDS)Administrative support for kids ministryReports, student read

5. Product Goals

GoalDescription
Fast attendance captureA user should be able to identify a student and record attendance with minimal steps.
Immediate recognitionStudent photos must appear immediately during search to support visual identification.
Offline continuityUsers must continue working when the internet is unavailable.
Reliable syncChanges made offline must sync safely when connectivity returns.
SimplicityThe interface must be easy for users with little software experience.
AccessibilityThe experience must satisfy WCAG Level AA.
ComplianceThe product must comply with LGPD wherever applicable.
ExtensibilityThe architecture must support future features without major redesign.

6. Scope

In scope

  • Attendance marking for present and absent states.
  • Student creation and maintenance.
  • Student directory browsing with alphabetical ordering and a profile/details view.
  • Report access for authorized users (13 report types: attendance rate, audits, class engagement, risk dropout, sociodemographic, trends, etc.).
  • Search with immediate photo visibility.
  • Offline operation and later synchronization via SQLite/WASM local database.
  • Audit history for student and attendance actions.
  • Role-based access control with 8 system roles and 25 granular permissions.
  • Dynamic custom role creation and management (CRUD API).
  • Localization architecture with Brazilian Portuguese default.
  • Deletion justification for admin-only student removal.
  • Visual feedback for successful and failed actions.
  • Admin-only user lifecycle management (create, update, reset password, deactivate).
  • Import and export of student and class data.
  • Public event registration for students and guardians.
  • Student self-onboarding via invite links.
  • Live capacity dashboard for class occupancy.
  • TV/display overlay for notifications and announcements.
  • Plugin system for extensible modules (nuclei, volunteers).

Out of scope for now

  • Mobile app store distribution.
  • Native applications.
  • Complex enterprise identity integrations unless explicitly added later.
  • Formal regulatory traceability matrix.
  • Multi-organization tenancy unless introduced later.

7. Core Users and Permissions

ActionCHAMADORRELATORIOSCADASTRORESPONSAVELVOLUNTARIOCOORDENACAO_KIDSADMINISTRATIVO_KIDSADMIN
Mark attendanceYesNoNoNoNoNoNoYes
View reportsNoYesNoNoNoYes (consolidated)Yes (consolidated)Yes
Add studentsNoNoYesNoNoNoNoYes
Edit studentsNoNoNoNoNoNoNoYes
Delete studentsNoNoNoNoNoNoNoYes, with justification
View usersNoNoNoNoNoNoNoYes
Create usersNoNoNoNoNoNoNoYes
Edit usersNoNoNoNoNoNoNoYes
Reset user passwordNoNoNoNoNoNoNoYes
Deactivate usersNoNoNoNoNoNoNoYes, with safeguards
Search studentsYesYesYesNoYes (basic)Yes (full)Yes (full)Yes
View student photoYesYesYesNoYesYesYesYes
View own studentsNoNoNoYesNoNoNoYes
Manage classes/nucleiNoNoYesNoNoNoNoYes
Manage volunteersNoNoNoNoNoNoNoYes
Import/export dataNoNoNoNoNoNoNoYes
Manage settingsNoNoNoNoNoNoNoYes
Create/edit sessionsNoNoYesNoYes (view)NoNoYes

8. Business Rules

  1. Admin actions supersede any conflicting lower-privilege actions.
  2. Student removal is admin-only and requires a justification text field.
  3. Student history and attendance history must be retained for audit purposes.
  4. The product must support least privilege wherever applicable.
  5. Any change to user-visible data must be double-checked before being committed.
  6. The product must remain usable offline and preserve unsynced work until sync can occur.
  7. Search results must surface student photos immediately to support identification.
  8. Student browsing should be predictable, with alphabetical ordering and a visible profile/details view for stakeholder review.
  9. User deactivation is soft only and never physically deletes user history.
  10. Self-deactivation is blocked.
  11. Deactivation of the last active Admin user is blocked.
  12. User management actions must always produce immutable audit events.

9. Architectural Decisions

All architectural decisions are documented as Architecture Decision Records in docs/architecture/adr/. Key topics include hosting strategy, authentication, encryption, database storage, and internationalization.

See ADR index for the full list.

10. Success Criteria

  • A new user can understand the app purpose and roles from the documentation alone.
  • Attendance can be recorded with minimal steps and clear feedback.
  • Users can keep working when offline and sync later without losing actions.
  • Admin-only deletion behavior is obvious and enforceable.
  • The product remains small, modular, and contributor-friendly.

Distribuído sob licença MIT.