Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Management (Django + React + GraphQL)

A simple project management app with multi-tenant support. Organizations own projects, projects have tasks and comments. Backend exposes a GraphQL API; frontend uses React + Apollo.

Tech Stack

  • Backend: Django, Graphene (GraphQL), PostgreSQL
  • Frontend: React, TypeScript, Apollo Client, TailwindCSS
  • Infra: Docker Compose (db, backend, frontend)

Quick Start (Docker)

  1. Start services
docker compose up -d --build
  1. Create tables (first time only)
docker compose exec backend python manage.py makemigrations organizations projects tasks
docker compose exec backend python manage.py migrate
  1. Open apps
  1. Create an organization (once)
docker compose exec backend python manage.py shell
from apps.organizations.models import Organization
org, _ = Organization.objects.get_or_create(
    name="Demo Company", slug="demo-company",
    defaults={"contact_email": "demo@example.com"}
)
print(org.id, org.slug)
  1. Tell the frontend which org to use (browser console)
localStorage.setItem("currentOrganizationSlug", "demo-company");
localStorage.setItem("currentOrganizationId", "<ORG_ID_FROM_PRINT>");
window.location.reload();

Create a Project (GraphQL)

Use GraphQL Playground at http://localhost:8000/graphql/

mutation {
  createProject(organizationId: "<ORG_ID>", name: "My First Project") {
    success
    errors
    project {
      id
      name
    }
  }
}

Local Development (without Docker)

Backend

cd backend
python -m venv venv
# Windows: venv\Scripts\activate | macOS/Linux: source venv/bin/activate
pip install -r requirements.txt
python manage.py makemigrations organizations projects tasks
python manage.py migrate
python manage.py runserver

Frontend

cd frontend
npm install
npm start

Tests

Backend

docker compose exec backend python manage.py test

Frontend

cd frontend
npm test

Troubleshooting

  • "relation 'projects' does not exist" → run makemigrations then migrate.
  • Docker must be running (Docker Desktop). Use docker version, docker compose ps.
  • If compose warns about version being obsolete, you can remove that key from docker-compose.yml (optional; harmless).

Basic README prepared for GitHub submission. For a deeper explanation, see your private guide in docs/MY_PROJECT_GUIDE.md (ignored by Git).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages