Skip to content

React front-end application for a task management backend project. It has a drag and drop functionality for managing tasks and beautiful UI with animation for a delightful experience.

Notifications You must be signed in to change notification settings

danielsarkwa/zello-react-app

Repository files navigation

Zello Frontend

Zello is a modern project management system inspired by tools like Trello and Jira. The frontend application provides an intuitive interface for managing projects, tasks, and team collaboration, built with React, TypeScript, and modern web technologies.

Live Demo

Screenshot 2025-03-20 at 5 56 59β€―PM Screenshot 2025-03-20 at 5 57 37β€―PM Screenshot 2025-03-20 at 5 57 47β€―PM Screenshot 2025-03-20 at 6 02 46β€―PM Screenshot 2025-03-20 at 6 02 55β€―PM

Tech Stack

  • Framework: React with TypeScript
  • State Management:
    • TanStack Query for server state
    • Zustand for client state
  • Styling: Tailwind CSS with Shadcn UI components
  • Form Handling: React Hook Form with Zod validation
  • API Integration: Axios with TypeScript
  • Authentication: JWT-based auth with refresh token mechanism
  • Backend API: C#, PostgreSQL, EF Core, ASP.NET

Features

Core Functionality

  • User authentication (login/register)
  • Workspace management
  • Project creation and management
  • Task tracking with Kanban boards
  • Team collaboration with comments
  • User feedback and system awareness

Technical Features

  • Type-safe API integration with Zod schemas
  • Error boundary implementation
  • Form validation with schema enforcement
  • Responsive design for all devices (⏰in-progress)
  • Loading states and skeleton screens
  • Centralized error handling
  • API error standardization through interceptors

Architecture

Data Flow

sequenceDiagram
    participant C as πŸ–₯️ UI Component
    participant F as πŸͺ Feature Hook
    participant Q as πŸ”„ Query Client
    participant S as πŸ›οΈ Service Layer
    participant A as πŸ”€ API Layer
    participant B as πŸš€ Backend

    Note over C,B: Data Fetching Flow
    C->>F: Call Feature Hook
    F->>Q: Execute Query
    Q->>S: Call Service
    S->>A: Make Request
    A->>B: HTTP Request
    B-->>A: Response
    A->>S: Transform Data
    S->>Q: Return Typed Data
    Q-->>F: Cache & Return
    F-->>C: Render Data

    Note over C,B: Data Mutation Flow
    C->>F: Trigger Mutation
    F->>Q: Execute Mutation
    Q->>S: Call Service
    S->>A: Make Request
    A->>B: HTTP Request
    B-->>A: Response
    A->>S: Transform Data
    S->>Q: Return & Invalidate
    Q-->>F: Update Cache
    F-->>C: Update UI
Loading
Screenshot 2025-01-27 at 1 37 29β€―AM

Directory Structure

src/
β”œβ”€β”€ api/           # API service layer
β”œβ”€β”€ components/    # Reusable UI components
β”œβ”€β”€ features/      # Feature-specific logic
β”œβ”€β”€ hooks/         # Custom React hooks
β”œβ”€β”€ lib/           # Utility functions
β”œβ”€β”€ pages/         # Route components
β”œβ”€β”€ schemas/       # Zod validation schemas
β”œβ”€β”€ store/         # Zustand state management
└── types/         # TypeScript type definitions

Getting Started

Prerequisites

  • Node.js v18 or higher
  • npm or yarn
  • Git

Installation

  1. Clone the repository:
git clone [repository-url]
cd zello-frontend
  1. Install dependencies:
yarn install
  1. Set up environment variables:
cp .env.example .env
  1. Start development server:
yarn dev

Environment Variables

VITE_API_URL=http://localhost:5000

Development Guidelines

Code Style

  • Use Zod schema for all data coming from backend
  • Follow ESLint and Prettier configurations
  • Keep components small and focused
  • Use type-based folder structure

State Management

  • Use TanStack Query for server state
  • Use Zustand for global client state
  • Use React state for local component state

Testing

  • Write unit tests for critical functionality
  • Test custom hooks and utilities
  • Ensure type safety with TypeScript

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run lint - Run ESLint
  • Write unit tests for critical functionality
  • Test custom hooks and utilities
  • Ensure type safety with TypeScript

Future Improvements

Technical Improvements

  • Implement optimistic updates for better UX in mutations
  • Add comprehensive unit testing with Vitest
  • Implement drag and drop syncing with API for Kanban board Tasks
  • Add end-to-end testing with Cypress
  • Improve responsive design for mobile devices

Feature Improvements

  • Improve workspace dashboard and show more anlytics
  • Develop comment creating and management
  • Implement additional CRUD operations to the entities (Workspaces, Project, List, Tasks and Comments) for user to delete and edit
  • Add data filtering for task page

Performance Improvements

  • Implement code splitting for better load times
  • Optimize bundle size

Resources

About

React front-end application for a task management backend project. It has a drag and drop functionality for managing tasks and beautiful UI with animation for a delightful experience.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages