Skip to content

Latest commit

 

History

History
174 lines (135 loc) · 4.78 KB

File metadata and controls

174 lines (135 loc) · 4.78 KB

🛠️ Novalyn Development Workflow

This document outlines the development phases, branching strategy, and workflow for building Novalyn, a modern project and task management platform.


📌 Phase Breakdown

Phase 0 — Project Setup

Branch: setup
Goal: Initialize the project structure for frontend and backend.

Tasks:

  • Initialize Git repository (main branch).
  • Backend:
    • Django project & apps (users, projects, tasks, comments).
    • DRF, Channels, JWT auth setup.
    • PostgreSQL DB setup.
  • 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.


Phase 1 — User Authentication

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.


Phase 2 — Projects & Tasks Core

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.


Phase 3 — Views & Interaction

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.


Phase 4 — Notifications & Realtime Updates

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.


Phase 5 — Integrations

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.


Phase 6 — Deployment & Optimization

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.


🌿 Branching Strategy

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:

  1. Create a branch from develop for each phase or feature.
  2. Complete tasks and test thoroughly.
  3. Merge back into develop via Pull Request.
  4. When stable, merge develop into main.

💡 Notes

  • Use Conventional Commits for clarity.
  • Always pull latest changes from develop before 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.