Skip to content

Roti's Conta is a web application designed to simplify accounting management for independent professionals (PFA) in Romania.

License

Notifications You must be signed in to change notification settings

Rotis-Web/rotis-conta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ˆ Roti's Conta - Simplified Accountancy

Open-source accounting management platform for Romanian PFA businesses

Nuxt JS TypeScript Vue.js MongoDB TailwindCSS Docker

Roti's Conta Banner

Overview

Roti's Conta is a web application designed to simplify accounting management for independent professionals (PFA) in Romania. It provides essential tools for fiscal record-keeping, document management, and automatic tax calculations compliant with Romanian legislation.

Built for: Personal use, but open-sourced for the Romanian PFA community.

Features

Core Functionality

  • Income & Expense Register - Complete tracking with monthly/annual reports
  • In/Out Document Register - Correspondence and official document management
  • Inventory Register - Asset tracking and valuation
  • Tax Calculator - Automatic calculation of CAS (25%), CASS (10%), and Income Tax (10%) based on legal thresholds
  • Document Management - Upload and organize contracts, invoices, declarations, and miscellaneous documents
  • Dashboard - Visual statistics and quick access to common operations

Technical Highlights

  • JWT-based authentication with httpOnly cookies
  • Secure file storage with Vercel Blob
  • Input validation using Zod schemas
  • Data sanitization to prevent NoSQL injection
  • CSV export for all registers

Preview

Dashboard Page Register Page
Calculator Page Invoices Page

Tech Stack

Frontend:

  • Nuxt.js 4
  • TypeScript
  • TailwindCSS
  • Pinia (state management)

Backend:

  • Nuxt server routes
  • MongoDB with Mongoose ODM
  • Vercel Blob (file storage)

Prerequisites

  • Node.js 18+
  • MongoDB 5.0+
  • pnpm (recommended) or npm

Installation

Local Development

# Clone repository
git clone https://github.com/Rotis-Web/rotis-conta.git
cd rotis-conta

# Install dependencies
pnpm install

# Configure environment variables
cp .env.example .env
# Edit .env with your configuration

# Run development server
pnpm dev

The application will be available at http://localhost:3000

Docker Deployment

# Development environment
docker-compose --profile dev up

# Production environment
docker-compose --profile prod up -d

Services:

  • App (dev): http://localhost:3000 + Hot reload on http://localhost:24678
  • App (prod): http://localhost:3000
  • MongoDB: localhost:27017
  • Mongo Express: http://localhost:8081 (dev/tools profile)

Environment Configuration

Create a .env file in the project root:

# Database
MONGODB_URI=mongodb://admin:admin123@mongodb:27017/rotis-conta_app?authSource=admin

# JWT Secrets (generate with: openssl rand -base64 32)
JWT_SECRET=your_jwt_secret_min_32_characters

# File Storage (Vercel Blob)
BLOB_READ_WRITE_TOKEN=your_vercel_blob_token

# API
API_BASE_URL="http://localhost:3000/api"

# Environment
NODE_ENV=development

For production: Use strong secrets and secure database credentials.

Project Structure

rotis-conta/
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ api/              # API routes
β”‚   β”œβ”€β”€ models/           # MongoDB schemas
β”‚   β”œβ”€β”€ middleware/       # Auth & validation
β”‚   β”œβ”€β”€ plugins/          # Database connection
β”‚   └── utils/            # JWT, validation helpers
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ components/           # Vue components
β”‚   β”œβ”€β”€ composables/          # Reusable logic
β”‚   β”œβ”€β”€ middleware/           # Auth & guest handling
β”‚   β”œβ”€β”€ layouts/              # Application layouts
β”‚   β”œβ”€β”€ pages/                # Application routes
β”œβ”€β”€ stores/               # Pinia state management
β”œβ”€β”€ types/                # TypeScript definitions
β”œβ”€β”€ Dockerfile            # Multi-stage build
└── docker-compose.yml    # Development & production

Mobile Responsive Design

Mobile Dashboard Mobile Register Mobile Invoices

Usage

  1. Register/Login - Create account with email and password
  2. Configure PFA Data - Settings β†’ PFA Data (name, CUI, bank details)
  3. Add Entries - Navigate to registers and add income/expense records
  4. Calculate Taxes - Calculator β†’ Select year β†’ Calculate from registry or manual input
  5. Upload Documents - Documents section β†’ Select category β†’ Upload files
  6. Export Data - Each register has CSV export functionality

Security

  • Passwords hashed via bcrypt
  • JWT access tokens (15min expiry)
  • Input validation and sanitization on all routes
  • Rate limiting on every endpoint
  • CSP headers and XSS protection
  • No browser storage APIs - All state managed in-memory or server-side

Disclaimer

This software is provided for informational purposes. Tax calculations are estimates based on Romanian legislation at the time of development. Always consult with a certified accountant for official tax obligations and declarations.


Built to simplify accounting management

Nuxt JS TypeScript Vue.js MongoDB TailwindCSS Docker

License: MIT | Developer: Alexandru Rotar

About

Roti's Conta is a web application designed to simplify accounting management for independent professionals (PFA) in Romania.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published