Skip to content

Latest commit

 

History

History
70 lines (69 loc) · 3.22 KB

README.md

File metadata and controls

70 lines (69 loc) · 3.22 KB

Plant Parent Application Overview

Aspect Description
Purpose This app is designed to track plants, their family trees, and timelines. It supports CRUD operations for plants and manages the hierarchical relationships between them.
Key Features
  • Family Tree Structure: Plants are organized into family trees.
  • Plant Management: Users can create, update, delete, and track plants. Each plant record includes:
    • Plant ID: Unique identifier for the plant.
    • User ID: Identifier for the user who owns the plant.
    • Timeline ID: Identifier for tracking events related to the plant over time.
    • Family Tree ID: Links the plant to its family tree.
  • Timeline: Each plant has a timeline to track its growth.
Technology Stack
  • Frontend: Built using Vite, TypeScript, React, and Redux.
  • Backend: TBC will be developed in Go with a MySQL database.
Key Considerations
  • Data Normalization: I've opted to use separate IDs for different aspects of the plant (user, timeline, family tree). This approach helps keep data organized but requires careful management of relationships.
  • Performance: Storing and managing hierarchical data might involve recursive queries or complex joins, which could impact performance.
  • State Management: Redux is used for state management, with slices for handling user, plant and message states. Slices are created with createAppSlice.
Challenges
  • Complex Data Relationships: Managing and querying hierarchical data and maintaining relationships between plants and their family trees.
  • State Management: Ensuring that state management with Redux is efficiently handled, especially with complex relationships and potential performance implications.
Future Considerations
  • Performance Optimization: Considerations for optimizing database queries and state management, especially if the app scales.
  • User Experience: Enhancing how users interact with plants and family trees, ensuring that the UI reflects the hierarchical structure clearly.