bottleneckcrm/frontend
Ashwin d2a2d690fc feat: add time report feature with CSV export
- Implemented a new time report page in the frontend that displays totals by agent, ticket, or account over a specified date range.
- Added a CSV export functionality for the time report, allowing users to download their report data.
- Created API endpoint for exporting time report data in CSV format.
- Developed data models and providers for managing time report data in the mobile application.
- Integrated time report navigation into the mobile app, allowing users to access the report from the timesheet screen.
- Added unit tests for time report data parsing and API request handling.
2026-08-16 10:23:02 +05:30
..
src feat: add time report feature with CSV export 2026-08-16 10:23:02 +05:30
static fix(docs): update GitHub repository links to use the correct 'django-crm' organization; ensure consistency across documentation and support pages 2026-08-01 15:46:25 +05:30
test/stubs feat(invoices): add new template creation page and update template list actions 2026-08-04 17:55:52 +05:30
.dockerignore feat: add email templates for assigned contacts, leads, and opportunities 2026-08-12 20:19:53 +05:30
.env.example Refactor comments for clarity and consistency across multiple screens and services 2026-08-03 09:36:48 +05:30
.gitignore feat: integrate Sentry for error monitoring in the frontend and remove various old linting/formatting configurations. 2026-02-20 17:49:19 +05:30
.npmrc revamp and upgrade to modern stack (#562) 2025-11-29 10:07:50 +05:30
.prettierignore chore: clean up code formatting and improve readability across multiple files 2026-08-07 22:42:57 +05:30
.prettierrc feat: Implement enterprise constraints, update models, serializers, views, and enhance UI components across the application. 2025-12-09 16:26:17 +05:30
components.json feat: Implement enterprise constraints, update models, serializers, views, and enhance UI components across the application. 2025-12-09 16:26:17 +05:30
Dockerfile feat: add email templates for assigned contacts, leads, and opportunities 2026-08-12 20:19:53 +05:30
eslint.config.js fix: resolve frontend CI checks - ESLint, Prettier, svelte-check 2026-02-17 22:41:47 +05:30
jsconfig.json feat: Implement enterprise constraints, update models, serializers, views, and enhance UI components across the application. 2025-12-09 16:26:17 +05:30
package.json feat: implement tag creation functionality with error handling in settings 2026-08-04 15:13:35 +05:30
pnpm-lock.yaml fix: update CodeQL workflow to include permissions and use latest actions versions; adjust publish job dependencies 2026-08-12 21:16:08 +05:30
pnpm-workspace.yaml feat: implement tag creation functionality with error handling in settings 2026-08-04 15:13:35 +05:30
README.md feat: implement ticketing system enhancements including time tracking, notifications, escalation, approval workflows, and mobile application updates. 2026-05-10 07:55:13 +05:30
svelte.config.js fix(tests): update href paths in TestTodayView to remove versioning; ensure consistency with API response structure 2026-07-31 19:15:08 +05:30
tailwind.config.ts feat: Implement enterprise constraints, update models, serializers, views, and enhance UI components across the application. 2025-12-09 16:26:17 +05:30
vite.config.js feat: enhance customer portal case management and article publishing 2026-08-15 23:59:44 +05:30
vitest.config.js feat: implement tag creation functionality with error handling in settings 2026-08-04 15:13:35 +05:30

BottleCRM: Free and Open Source Customer Relationship Management

Powerful, Modern Multi-Tenant CRM for Everyone

BottleCRM is a free, open-source Customer Relationship Management solution designed to help small and medium businesses effectively manage their customer relationships. Built with modern technologies and enterprise-grade multi-tenancy, it offers a comprehensive set of features without the enterprise price tag.

✨ Key Highlights

  • Multi-Tenant Architecture: Secure organization-based data isolation
  • Role-Based Access Control: Granular permissions for users and admins
  • Modern Technology Stack: Built with SvelteKit 2.x, Svelte 5.x, and PostgreSQL
  • Mobile-First Design: Responsive interface optimized for all devices

🚀 Core Features

Sales & Lead Management

  • Lead Management: Track and nurture leads from initial contact to conversion
  • Account Management: Maintain detailed records of customer accounts and organizations
  • Contact Management: Store and organize all your customer contact information
  • Opportunity Management: Track deals through your sales pipeline with customizable stages

Customer Support

  • Ticket Management: Handle customer support tickets and track resolution
  • Solution Knowledge Base: Maintain searchable solutions for common issues
  • Multi-Channel Support: Handle tickets from various origins (email, web, phone)

Productivity & Collaboration

  • Task Management: Never miss a follow-up with built-in task tracking
  • Event Management: Schedule and manage meetings and activities
  • Board Management: Trello-like kanban boards for project tracking
  • Comment System: Collaborate with team members on records

Sales Tools

  • Quote Management: Generate professional quotes with line items
  • Product Catalog: Maintain product inventory with pricing
  • Sales Pipeline: Visual opportunity tracking with probability scoring

Administrative Features

  • User Management: Add team members with appropriate role assignments
  • Organization Management: Multi-tenant structure with data isolation
  • Audit Logging: Complete activity tracking for compliance
  • Super Admin Panel: Platform-wide management for system administrators

🔮 Coming Soon

  • Invoice Management: Create, send, and track invoices (in development)
  • Email Integration: Connect your email accounts for seamless communication
  • Analytics Dashboard: Make data-driven decisions with powerful reporting tools
  • API Integration: REST API for third-party integrations

🖥️ Technology Stack

  • Frontend: SvelteKit 2.x, Svelte 5.x, TailwindCSS 4.x
  • Backend: Node.js with Prisma ORM
  • Database: PostgreSQL (recommended) with multi-tenant schema
  • Authentication: Session-based authentication with organization membership
  • Icons: Lucide Svelte icon library
  • Validation: Zod for type-safe form validation

🚀 Getting Started

Prerequisites

  • Node.js: v22.13.0 (use nvm for version management)
  • Package Manager: pnpm (recommended)
  • Database: PostgreSQL (required for multi-tenancy features)

Installation

  1. Clone the repository:
git clone https://github.com/micropyramid/svelte-crm.git
cd svelte-crm
  1. Set up Node.js version:
nvm use 22.13.0
  1. Install dependencies:
pnpm install
  1. Configure environment variables: Create a .env file based on the following template:
# Database Configuration
DATABASE_URL="postgresql://postgres:password@localhost:5432/bottlecrm?schema=public"

# JWT Secret (required for authentication)
# Generate a secure secret using openssl:
#   openssl rand -base64 32
JWT_SECRET="<your-generated-secret>"

# Google OAuth (Optional)
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GOOGLE_LOGIN_DOMAIN="http://localhost:5173"
  1. Set up the database:
# Generate Prisma client
npx prisma generate

# Run database migrations
npx prisma migrate dev

# (Optional) Open Prisma Studio to view data
npx prisma studio
  1. Start the development server:
pnpm run dev

Development Workflow

Before committing code, ensure quality checks pass:

# Type checking
pnpm run check

# Linting and formatting
pnpm run lint

# Build verification
pnpm run build

Production Deployment

# Set Node.js version
nvm use 22.13.0

# Generate Prisma client
npx prisma generate

# Run production migrations
npx prisma migrate deploy

# Build application
pnpm run build

# Start production server
pnpm run preview

🏗️ Architecture & Security

Multi-Tenant Design

  • Organization Isolation: Complete data separation between organizations
  • Role-Based Access: Users can have different roles across organizations
  • Session Management: Secure cookie-based authentication with organization context

User Roles

  • User: Standard access to organization data
  • Admin: Organization-level administrative privileges
  • Super Admin: Platform-wide access (requires @micropyramid.com email)

Data Security

  • All database queries are organization-scoped
  • Strict permission validation on all routes
  • Audit logging for compliance and tracking

📁 Project Structure

src/
├── routes/
│   ├── (site)/          # Public marketing pages
│   ├── (no-layout)/     # Authentication pages
│   ├── (app)/           # Main CRM application
│   └── (admin)/         # Super admin panel
├── lib/
│   ├── stores/          # Svelte stores for state management
│   ├── data/            # Static data and configurations
│   └── utils/           # Utility functions
└── hooks.server.js      # Authentication and route protection

💬 Community and Feedback

We love to hear from our users! Please share your feedback, report bugs, or suggest new features:

  • Issues: Open an issue on GitHub for bugs and feature requests
  • Discussions: Join community discussions for general questions
  • Pull Requests: Contribute code improvements and new features

🤝 Contributing

We welcome contributions of all kinds! See our CONTRIBUTING.md for details on how to get started.

Development Guidelines

  • Follow existing code patterns and conventions
  • Ensure all forms have proper accessibility (labels associated with controls)
  • Never use $app imports from SvelteKit (see packaging best practices)
  • Always filter database queries by organization membership
  • Add appropriate error handling and validation

📄 License

BottleCRM is open source software licensed as MIT.


Built with ❤️ for small businesses everywhere. We believe quality CRM software should be accessible to everyone.