Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Rotis-Web/rotis-conta

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

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

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

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /