Comptarial

Comptarial is a web application I helped build for an accounting firm. The goal was straightforward: they needed a way to securely exchange tax returns and financial documents with their clients. We built this as part of a module at the Haute école de gestion de Genève (HEG), running the project as an Agile team using Scrum.

The Architecture

We went with a decoupled architecture. A Next.js frontend handles the user interface, while a Laravel backend manages the heavy lifting.

Infrastructure

HTTPS

REST API

Read/Write

Object Storage

Laravel 12+ API

Sanctum Auth

API Endpoints

Mail Service

Next.js Application

UI Components

User

MySQL Database

Infomaniak S3 Storage

The Stack

  • Frontend: It’s written in TypeScript with Next.js. For styling, we used Tailwind CSS and pulled in raw components from shadcn/ui to build the interface quickly.
  • Backend: We used Laravel 12+ to expose a REST API. It handles file routing, business logic, and automated emails.
  • Storage: You don’t want to store highly sensitive accounting documents on a standard web server’s disk. We integrated Infomaniak’s S3-compatible Swiss Backup to keep the files isolated and secure.
  • Database: A standard MySQL database stores user data, role assignments, and document metadata.

How It Works

The platform focuses on a few core problems accountants face every day:

  • Role-Based Authentication: We used Laravel Sanctum to manage user sessions. Accountants see a dashboard with all their assigned clients, while clients only see their own files.
  • Document Transfers: It’s essentially a secure drop-box. Clients upload files through the React frontend, and the Laravel API pipes the data directly into the Infomaniak S3 bucket.
  • Account Management: The fiduciary staff can create accounts. We added reCAPTCHA v3 to keep bots out of the public-facing forms.
  • Notifications: The system sends out automated emails when a new document is uploaded, so the accountants don’t have to keep refreshing a page to see if a client submitted their taxes.