Skip to content

Teamora — A personal ERP SaaS project in its early stage, focused on project management. Built with Django, DRF, and React, it supports multiple tenants and is designed to be easy to scale and extend. In the future, it will include more modules like HR, CRM, and Finance to become a full ERP system.

Notifications You must be signed in to change notification settings

roshnnjabir/Teamora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teamora

Teamora is a personal ERP SaaS project focused on scalable and modular project management. It’s built using Django, Django REST Framework, and React, and supports multi-tenant architecture using django-tenants. This project is in its MVP stage with a completed project management module and plans to expand into HR, CRM, and Finance in the future.


🚀 Features

  • ✅ Project & Task management with subtasks
  • ✅ Drag-and-drop Kanban interface
  • ✅ Role-based access (Admin, Project Manager, Developer)
  • ✅ Multi-tenant architecture with subdomain routing
  • ✅ Real-time updates using Django Channels + Redis
  • ✅ Modular monolithic structure with DRY principles
  • 🚧 More ERP modules planned (HR, CRM, Finance)

🛠 Tech Stack

Backend:

  • Django
  • Django REST Framework
  • django-tenants
  • PostgreSQL (schema-based multi-tenancy)
  • Redis
  • Django Channels
  • JWT Authentication

Frontend:

  • React
  • Redux Toolkit
  • React Router
  • TailwindCSS
  • Axios (with tenant-aware API client)

🧱 Project Structure

teamora/
├── backend/             # Django project with modular apps
│   ├── apps/            # Project, Task, User, etc.
│   ├── core/            # Shared utilities, base models
│   └── tenants/         # Tenant and Domain models
├── frontend/            # React frontend
│   ├── components/      
│   ├── features/        
│   └── pages/           
└── README.md

⚙️ Setup Instructions (Local Dev)

📦 Backend (non-Docker)

cd backend
python -m venv env
source env/bin/activate  # or .\env\Scripts\activate on Windows
pip install -r requirements.txt

Run Migrations

Migrate public schema first:

python manage.py migrate_schemas --schema=public

Then apply tenant migrations:

python manage.py migrate_schemas --tenant

💡 Or just run for all:

python manage.py migrate_schemas

Create Superuser (for public schema)

python manage.py createsuperuser --schema=public

Run the server

python manage.py runserver

🐳 Docker Setup (Recommended for consistent dev)

Prerequisites

  • Docker + Docker Compose installed

Build and Start

docker compose up --build

Backend will be available at:
http://localhost:8000/

Common Docker Commands

  • Restart:

    docker compose restart
  • Shut down:

    docker compose down
  • Access backend container:

    docker compose exec teamora-backend bash
  • Django shell inside container:

    docker compose exec teamora-backend python manage.py shell

🏗 Creating a New Tenant

Run the Django shell:

python manage.py shell

Then create a tenant and domain (example):

from tenants.models import Client, Domain

tenant = Client(
    name="Acme Corp",
    schema_name="acme",
    paid_until="2026-01-01",
    on_trial=True
)
tenant.save()

domain = Domain()
domain.domain = "acme.localhost"  # Use actual subdomain in production
domain.tenant = tenant
domain.is_primary = True
domain.save()

🔁 Visit your tenant at http://acme.localhost:8000/
Make sure you have proper DNS or local hosts entry.


🌱 Environment Variables

Create a .env file (or use .env.example) in your backend/ folder for things like:

POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DJANGO_SECRET_KEY=your-secret-key
DJANGO_DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1

📈 Roadmap

  • Project & task management (MVP)
  • Subtask support & assignment
  • Role-based access
  • Multi-tenancy support
  • Drag-and-drop Kanban
  • HR module
  • CRM module
  • Finance module
  • Notification center
  • Audit logs & activity tracking
  • Admin dashboard for tenants
  • Mobile optimization

👨‍💻 Author

Roshan J.
Built with ❤️ to learn, scale, and experiment with modern ERP design and architecture.


📄 License

Teamora is licensed under the MIT License.

About

Teamora — A personal ERP SaaS project in its early stage, focused on project management. Built with Django, DRF, and React, it supports multiple tenants and is designed to be easy to scale and extend. In the future, it will include more modules like HR, CRM, and Finance to become a full ERP system.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published