Files
michaelschal a6b0719ebf Improve clarity and appearance of sales history details
Update the styling of the 'categorie' column in the SalesHistory component to use a more visually distinct and informative badge, and adjust text sizes for better readability across product details in the sales history view.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: a388004f-01c5-42b1-b1d1-f18daf8bdd0c
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/a388004f-01c5-42b1-b1d1-f18daf8bdd0c/pSitqax
2025-08-06 11:24:12 +00:00

61 lines
3.3 KiB
Markdown

# RegisFlow
## Overview
RegisFlow is a comprehensive web application for managing and tracking fireworks sales in compliance with French regulations. It provides a secure system for sales registration with multi-user authentication, role-based access control, multi-store management, and secure PostgreSQL database storage. The application aims to streamline sales operations for fireworks retailers while ensuring regulatory compliance, offering a robust solution for tracking, reporting, and data management.
## User Preferences
Preferred communication style: Simple, everyday language.
## System Architecture
### Frontend
- **Framework**: React 18 with TypeScript
- **Build Tool**: Vite
- **Styling**: TailwindCSS with shadcn/ui and Radix UI primitives
- **State Management**: React Hook Form, TanStack Query
- **Authentication**: Session-based with role-based access control
- **UI/UX Decisions**: Modern, angular design with a professional color scheme, focusing on clear visual borders and frames. Elements like cards, buttons, and form fields use rectangular shapes with a 4px border-radius. Responsive design is prioritized for mobile, tablet, and desktop.
### Backend
- **Server**: Express.js with TypeScript
- **Database ORM**: Drizzle ORM
- **Database**: PostgreSQL
- **Authentication**: bcrypt password hashing, Express sessions, PostgreSQL session store
- **Key Features**:
- Multi-User and Store Management: Secure login, administrative user/store management, multi-tenant store isolation.
- Sales Management: Comprehensive sales form with validation (including EAN-13), sales history with search/filter, and data export (CSV/Excel with images).
- Data Compliance: Automated data purge for records older than 19 months, role-based permissions (Admin, Manager, Employee), and secure session management.
- Backup & Recovery: Full database backup/restore with automatic scheduling and cleanup.
- Photo Capture: Integrated photo capture for identity documents and receipts with robust camera support and file upload fallback.
### Data Storage
- **Primary Storage**: PostgreSQL database with Drizzle ORM for schema management and migrations.
- **Session Storage**: PostgreSQL sessions table.
- **Multi-tenant**: Each store maintains isolated sales data.
- **Data Flow**: Secure authentication and session management; sales recording with comprehensive validation and audit trails; robust data management with role-based access and secure session handling.
## External Dependencies
### Core Dependencies
- `@neondatabase/serverless`: PostgreSQL database connectivity
- `drizzle-orm`: Type-safe database operations
- `@tanstack/react-query`: Server state management
- `react-hook-form`: Form handling and validation
- `@hookform/resolvers`: Form validation resolvers
### Authentication & Security
- `bcryptjs`: Password hashing
- `express-session`: Session management
- `connect-pg-simple`: PostgreSQL session store
- `drizzle-zod`: Schema validation with Zod
### UI and Styling
- `@radix-ui/*`: Headless UI primitives
- `tailwindcss`: Utility-first CSS framework
- `class-variance-authority`: Component variant management
- `lucide-react`: Icon library
### Development Tools (used for project development, not runtime dependencies for deployed app)
- `tsx`: TypeScript execution
- `esbuild`: JavaScript bundler
- `vite`: Development server and build tool