CivilIO is a desktop application for managing civil status data, built with Angular and Electron.
The project is a monorepo managed with pnpm workspaces, organized as follows:
projects/civilio: The main Angular application.projects/electron: The Electron main and preload processes.libs/shared: Shared utilities and code between the Angular and Electron apps.
- Frameworks: Angular, Electron
- Database: PostgreSQL with Drizzle ORM
- Styling: Tailwind CSS with SCSS,
spartan-ngUI components - State Management: NGXS
- Package Manager: pnpm
- Node.js and pnpm
- A running PostgreSQL instance
-
Clone the repository.
-
Install the dependencies:
pnpm install
To start the application in development mode, run:
pnpm devThis will concurrently start the Angular development server and the Electron application with hot-reloading.
The project uses Drizzle ORM for database migrations.
-
To generate and apply migrations, run:
pnpm migrate.local
-
To open Drizzle Studio, run:
pnpm studio
To build and package the application for production, run:
pnpm make:electronThis will create a distributable package in the out directory.
To run the unit tests, use:
pnpm testThe project includes custom schematics for generating new components:
-
Generate a new page:
pnpm generate:page <page-name>
-
Generate a new layout:
pnpm generate:layout <layout-name>
-
Generate a new component:
pnpm generate:component <component-name>