Interactive web application for creating, editing, and managing tables with adaptive grid and drag-and-drop functionality.
- Table Creation: Dynamic creation of tables with configurable columns
- Cell Editing: Real-time editing of cell content
- Adaptive Grid: Automatic table placement in adaptive grid
- Table Copying: Quick copying of existing tables
- Drag & Drop: Drag tables to change their position
- Responsive Design: Adaptation to various screen sizes
- Frontend: React 18 + TypeScript
- State Management: Redux Toolkit + React-Redux
- Build Tool: Vite
- Testing: Vitest + React Testing Library
- Styling: CSS Modules
- Code Quality: ESLint + Prettier
- Node.js 18+
- npm 9+ or yarn 1.22+
๐ Need help? Check out our comprehensive User Guide for detailed instructions and troubleshooting.
npm installnpm run devThe application will be available at http://localhost:5173
npm run buildnpm testnpm run test:watchnpm run lintnpm run format๐ Want to understand the architecture? See Architecture Guide for detailed design principles and system overview.
src/
โโโ components/ # React components
โ โโโ CreateTableForm/ # Table creation form
โ โโโ EditableCell/ # Editable cells
โ โโโ TableComponent/ # Main table component
โ โโโ TableGenerator/ # Application container
โ โโโ TablesGrid/ # Grid for table placement
โโโ store/ # Redux store and slices
โ โโโ slices/ # Redux slices
โ โโโ index.ts # Store configuration
โโโ types/ # TypeScript types and interfaces
โโโ utils/ # Utilities and helpers
โโโ test/ # Test utilities
๐ง Developer? See API Documentation for detailed component props, events, and usage examples.
Form for creating new tables with capabilities:
- Table name configuration
- Adding/removing columns
- Column data type selection (text, number, select)
Main component for displaying tables:
- Column headers
- Editable cells
- Copy button
- Drag & Drop functionality
Adaptive grid for table placement:
- Automatic positioning
- Responsive layout
- Support for various screen sizes
Manages table state:
addTable- adding new tablecopyTable- copying existing tableupdateCell- updating cell contentupdateTablePosition- updating table position
Manages UI state:
toggleForm- show/hide creation formselectTable- select active table
The project uses CSS Modules for style isolation. Main styles:
- Adaptive grid with CSS Grid
- Responsive design for mobile devices
- Hover effects and interactive states
- Modern and clean design
The project is covered with comprehensive tests:
- Unit tests for Redux slices
- Component tests for React components
- Integration tests for user workflows
- Tests for drag & drop functionality
# All tests
npm test
# Tests in watch mode
npm run test:watch
# Tests with coverage
npm run test:coverageThe application adapts to various screen sizes:
- Desktop: Full-featured interface with drag & drop
- Tablet: Adapted grid with touch-friendly elements
- Mobile: Vertical table arrangement
Configured for TypeScript and React with rules for:
- TypeScript best practices
- React hooks rules
- Accessibility guidelines
Optimized for fast development:
- Hot Module Replacement
- TypeScript support
- Build optimization
๐ Ready to deploy? See Deployment Guide for comprehensive instructions on all platforms including Docker, AWS, and CI/CD setup.
npm run build
# Upload dist/ content to Netlifynpm run build
# Connect repository to VercelFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is distributed under the MIT License. See the LICENSE file for details.
If you have questions or issues:
- Check Issues on GitHub
- Create a new issue with problem description
- Describe steps to reproduce
- Export tables to various formats (CSV, Excel)
- Import data from files
- Table templates
- Real-time collaboration
- Advanced data types (date, images)
- Dark theme
- Localization (i18n)
๐ Documentation Index: Start here with our complete documentation index to find what you need quickly.
- User Guide - Complete user manual with step-by-step instructions
- API Documentation - Technical reference for developers and component APIs
- Architecture Guide - Project architecture overview and design principles
- Deployment Guide - Comprehensive deployment instructions for various platforms
- Getting Started: See Quick Start section above
- Component Reference: See Main Components section
- Redux Store: See Redux Store section
- Testing: See Testing section
- React Documentation - Official React documentation and tutorials
- Redux Toolkit Documentation - Official Redux Toolkit guide
- TypeScript Handbook - TypeScript language reference
- Vite Documentation - Build tool documentation and configuration
- React Community - React community support and resources
- Redux Community - Redux community and discussions
- TypeScript Community - TypeScript community resources
- React Tutorial - Interactive React learning tutorial
- Redux Fundamentals - Redux core concepts
- TypeScript Tutorial - TypeScript learning guide
- React Developer Tools - Chrome extension for React debugging
- Redux DevTools - Chrome extension for Redux debugging
- VS Code Extensions - Recommended VS Code extensions for React/TypeScript development