# Django-CRM-Upgrade **Repository Path**: shifeipython/django-crm-upgrade ## Basic Information - **Project Name**: Django-CRM-Upgrade - **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-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BottleCRM A modern, open-source CRM platform built with Django REST Framework and SvelteKit. ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Python](https://img.shields.io/badge/python-3.10+-green.svg) ![Django](https://img.shields.io/badge/django-5.x-green.svg) ![SvelteKit](https://img.shields.io/badge/sveltekit-2.x-orange.svg) ![Svelte](https://img.shields.io/badge/svelte-5-orange.svg) ## Overview BottleCRM is a full-featured Customer Relationship Management system designed for startups and small businesses. It combines a powerful Django REST API backend with a modern SvelteKit frontend, featuring multi-tenant architecture with PostgreSQL Row-Level Security (RLS) for enterprise-grade data isolation. **Try it free**: [bottlecrm.io](https://bottlecrm.io/) ## Features ### Core CRM Modules - **Leads** - Track and manage sales leads through your pipeline - **Accounts** - Manage company/organization records - **Contacts** - Store and organize contact information - **Opportunities** - Track deals and sales opportunities - **Cases** - Customer support case management - **Tasks** - Task management with calendar and Kanban board views - **Invoices** - Create and manage invoices ### Platform Features - **Multi-Tenant Architecture** - PostgreSQL RLS for secure data isolation between organizations - **JWT Authentication** - Secure token-based authentication - **Team Management** - Organize users into teams with role-based access - **Activity Tracking** - Comprehensive audit logs and activity history - **Comments & Attachments** - Collaborate with comments and file attachments on any record - **Tags** - Flexible tagging system for organizing records - **Email Integration** - AWS SES integration for transactional emails - **Background Tasks** - Celery + Redis for async task processing ## Tech Stack ### Backend - **Django 5.x** with Django REST Framework - **PostgreSQL** with Row-Level Security (RLS) - **Redis** for caching and Celery broker - **Celery** for background task processing - **JWT** for authentication - **AWS S3** for file storage - **AWS SES** for email delivery ### Frontend - **SvelteKit 2.x** with Svelte 5 (runes) - **TailwindCSS 4** for styling - **shadcn-svelte** UI components - **Zod** for schema validation - **Axios** for API communication - **Lucide** icons ## Quick Start ### Prerequisites - Python 3.10+ - Node.js 18+ with pnpm - PostgreSQL 14+ - Redis ### Backend Setup ```bash # Clone the repository git clone https://github.com/MicroPyramid/Django-CRM.git cd Django-CRM # Create and activate virtual environment cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Set up environment variables (see env.md for details) cp .env.example .env # Edit .env with your database and other settings # Run migrations python manage.py migrate # Create a superuser python manage.py createsuperuser # Start the development server python manage.py runserver ``` ### Frontend Setup ```bash # In a new terminal, from the project root cd frontend # Install dependencies pnpm install # Start the development server pnpm run dev ``` ### Start Celery Worker ```bash # In a new terminal cd backend source venv/bin/activate celery -A crm worker --loglevel=INFO ``` ### Access the Application - **Frontend**: http://localhost:5173 - **API Documentation**: http://localhost:8000/swagger-ui/ - **Admin Panel**: http://localhost:8000/admin/ ## Docker Setup ```bash # Build and run with Docker Compose docker build -t bottlecrm:latest -f docker/dockerfile . docker-compose -f docker/docker-compose.yml up ``` ## Project Structure ``` Django-CRM/ ├── backend/ # Django REST API │ ├── accounts/ # Accounts module │ ├── cases/ # Cases module │ ├── common/ # Shared models, utilities, RLS │ ├── contacts/ # Contacts module │ ├── invoices/ # Invoices module │ ├── leads/ # Leads module │ ├── opportunity/ # Opportunities module │ ├── tasks/ # Tasks module │ └── crm/ # Django project settings ├── frontend/ # SvelteKit frontend │ ├── src/ │ │ ├── lib/ # Components, stores, utilities │ │ └── routes/ # SvelteKit routes │ │ ├── (app)/ # Authenticated app routes │ │ └── (no-layout)/ # Auth pages (login, etc.) │ └── static/ # Static assets └── docker/ # Docker configuration ``` ## Multi-Tenancy & Security BottleCRM uses PostgreSQL Row-Level Security (RLS) to ensure complete data isolation between organizations. Every database query is automatically filtered by organization context, providing enterprise-grade security. ```bash # Check RLS status python manage.py manage_rls --status # Verify RLS user configuration python manage.py manage_rls --verify-user # Test data isolation python manage.py manage_rls --test ``` ## Development ### Backend Commands ```bash # Run tests cd backend && pytest # Format code black . && isort . # Check dependencies pipdeptree pip-check -H ``` ### Frontend Commands ```bash cd frontend # Type checking pnpm run check # Linting pnpm run lint # Formatting pnpm run format ``` ## API Documentation The API follows RESTful conventions: ``` GET/POST /api// # List/Create GET/PUT/DELETE /api/// # Detail/Update/Delete GET/POST /api//comment// # Comments GET/POST /api//attachment// # Attachments ``` Interactive API documentation is available at `/swagger-ui/` when running the backend. ## Contributing We welcome contributions! Please see our contributing guidelines for details. 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## Community - **Issues**: [GitHub Issues](https://github.com/MicroPyramid/Django-CRM/issues) - **Twitter**: [@micropyramid](https://twitter.com/micropyramid) - **Commercial Support**: [Contact us](https://micropyramid.com/contact-us/) ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Contributors This project exists thanks to all the people who contributed. ![Contributors](https://opencollective.com/django-crm/contributors.svg?width=890&button=false)