This document outlines the development phases, branching strategy, and workflow for building Novalyn, a modern project and task management platform.
Branch: setup
Goal: Initialize the project structure for frontend and backend.
Tasks:
- Initialize Git repository (
mainbranch). - Backend:
- Django project & apps (
users,projects,tasks,comments). - DRF, Channels, JWT auth setup.
- PostgreSQL DB setup.
- Django project & apps (
- Frontend:
- React + TypeScript + Tailwind CSS.
- Folder structure (
components,pages,hooks,services,context). - React Router & Axios setup.
- Docker setup (optional).
- Linters/formatters (Prettier, ESLint, Black).
- Create initial README.md & LICENSE.
Deliverable: Minimal app running independently for frontend & backend.
Branch: auth
Goal: Enable users to register, log in, and manage sessions.
Tasks:
- Backend:
- User model & serializer.
- JWT auth endpoints (login, register, refresh).
- Password reset (optional).
- Frontend:
- Signup/Login pages.
- Form validation & protected routes.
- Store JWT tokens securely.
- Tests:
- Backend API tests.
- Frontend component/UI tests.
Deliverable: Users can register and authenticate.
Branch: core
Goal: Implement core project management functionality.
Tasks:
- Backend:
- CRUD APIs for Projects, Tasks, Subtasks, and Comments.
- Assign tasks to users.
- Frontend:
- Project list & project detail pages.
- Create/edit tasks & subtasks.
- Commenting functionality.
- Integration:
- Connect frontend with API using Axios/React Query.
Deliverable: Fully functional CRUD operations for projects, tasks, and comments.
Branch: ui
Goal: Enhance UX with interactive views.
Tasks:
- Kanban board (drag & drop tasks).
- Calendar view with task deadlines.
- List view with sorting/filtering.
- Task details modal.
- Activity log for task updates.
- Responsive design with Tailwind CSS.
Deliverable: Multiple task views with responsive UI.
Branch: realtime
Goal: Add real-time collaboration and notifications.
Tasks:
- Backend:
- Django Channels & WebSocket setup.
- Notify users on task updates/comments.
- Frontend:
- Toast notifications.
- Live updates on Kanban/Task board.
- Optional:
- Email notifications via SMTP or third-party services.
Deliverable: Users receive real-time updates and notifications.
Branch: integrations
Goal: Connect with external services for workflow automation.
Tasks:
- GitHub:
- Link PRs/issues to tasks.
- Slack:
- Send messages on task updates.
- Optional:
- Google Calendar, Trello, etc.
Deliverable: GitHub and Slack integrations functional.
Branch: deployment
Goal: Prepare the app for production.
Tasks:
- Backend:
- Deploy Django on Heroku, Render, or AWS.
- Configure environment variables & security.
- Frontend:
- Deploy React app on Vercel or Netlify.
- Connect to backend API.
- Performance:
- Optimize DB queries, caching (optional).
- Monitoring/Logging:
- Integrate Sentry or similar tools.
- Update documentation & README.
Deliverable: Production-ready Novalyn app.
| Branch | Purpose |
|---|---|
main |
Stable production-ready code |
develop |
Integration branch for features |
setup |
Phase 0: Initial setup |
auth |
Phase 1: User authentication |
core |
Phase 2: Projects & tasks |
ui |
Phase 3: Frontend views & UX |
realtime |
Phase 4: WebSocket & notifications |
integrations |
Phase 5: GitHub/Slack integration |
deployment |
Phase 6: Deployment & optimization |
feature/xyz |
Optional: smaller features or experiments |
Workflow:
- Create a branch from
developfor each phase or feature. - Complete tasks and test thoroughly.
- Merge back into
developvia Pull Request. - When stable, merge
developintomain.
- Use Conventional Commits for clarity.
- Always pull latest changes from
developbefore starting a new feature. - Maintain separate branches for major features to avoid conflicts.
- Prioritize testing and code reviews before merging.
Novalyn — Turning chaos into clarity for your team.