# opensource-startup-crm
**Repository Path**: shifeipython/opensource-startup-crm
## Basic Information
- **Project Name**: opensource-startup-crm
- **Description**: No description available
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-10
- **Last Updated**: 2026-01-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 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
- **Case Management**: Handle customer support cases and track resolution
- **Solution Knowledge Base**: Maintain searchable solutions for common issues
- **Multi-Channel Support**: Handle cases 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:**
```bash
git clone https://github.com/micropyramid/svelte-crm.git
cd svelte-crm
```
2. **Set up Node.js version:**
```bash
nvm use 22.13.0
```
3. **Install dependencies:**
```bash
pnpm install
```
4. **Configure environment variables:**
Create a `.env` file based on the following template:
```env
# 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=""
# Google OAuth (Optional)
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GOOGLE_LOGIN_DOMAIN="http://localhost:5173"
```
5. **Set up the database:**
```bash
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# (Optional) Open Prisma Studio to view data
npx prisma studio
```
6. **Start the development server:**
```bash
pnpm run dev
```
### Development Workflow
Before committing code, ensure quality checks pass:
```bash
# Type checking
pnpm run check
# Linting and formatting
pnpm run lint
# Build verification
pnpm run build
```
### Production Deployment
```bash
# 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](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](LICENSE).
---
*Built with ❤️ for small businesses everywhere. We believe quality CRM software should be accessible to everyone.*