Project Overview
SaaSData IntegrationReactNode.jsShopify
Description
Apply these rules when creating the project
Globs
**/*
---
description: Apply these rules when creating the project
globs: **/*
---
## Project Overview
* **Type:** cursor_project_rules
* **Description:** I want to build a SaaS project in which name is FlowTechs is a data integration platform enabling users to:
* Connect to e-commerce platforms (starting with Shopify)
* Extract and transform data
* Export to various destinations
* Automate data workflows
* Core Features
* User authentication and management
* API integration management
* Data transformation engine
* Multiple destination support
* Automated scheduling system
* Real-time monitoring
* **Primary Goal:** FlowTechs aims to simplify and streamline the ETL process for small to mid-sized ecommerce businesses and Shopify store owners, by providing a secure, low-code, and user-friendly platform that integrates data extraction, real-time transformation preview, automated scheduling, and comprehensive monitoring.
## Project Structure
### Framework-Specific Routing
* **Directory Rules:**
* **React Router 6:** Implements routing through a dedicated `src/routes/` directory, leveraging `createBrowserRouter` for dynamic navigation.
* Example: `src/routes/dashboard.jsx` for main dashboard view
* Example: `src/routes/auth/login.jsx` for login page routing
### Core Directories
* **Versioned Structure:**
* **frontend (React):** Contains all client-side components and view logic using React.
* Example: `src/components` for reusable UI components built with ShadCN/UI patterns
* Example: `src/views` for page-specific layouts
* **backend (Node.js/Express):** Houses API endpoints and server logic.
* Example: `backend/routes` for Express routing definitions
* Example: `backend/controllers` for business logic implementations
### Key Files
* **Stack-Versioned Patterns:**
* **Frontend Entry:**
* `src/App.jsx` → Main React application incorporating React Router 6 and modern component structure
* **Backend Entry:**
* `backend/server.js` → Node.js Express server setup enforcing API integration and scheduling logic
## Tech Stack Rules
* **Version Enforcement:**
* **react@latest:** Use React Router 6 with functional components and hooks.
* **<express@4.x>:** Follow RESTful API conventions and modular middleware setups.
* **postgresql@latest:** Utilize modern SQL practices and secure connection pooling.
* **aws_s3@latest:** Enforce secure bucket policies and versioned file storage.
* **stripe@latest:** Integrate Stripe for subscription management with best-in-class security practices (PCI DSS compliant).
* **shopify_oauth:** Prioritize Shopify OAuth as the default authentication method for secure data extraction.
* **shadcn_ui:** Use the ShadCN/UI library to achieve modern, minimalistic UI/UX with dark/light theme support.
* **node_cron:** Schedule tasks reliably using cron-like expressions and robust error-handling mechanisms.
## PRD Compliance
* **Non-Negotiable:**
* "FlowTechs is a SaaS data integration platform designed for small to mid-sized e-commerce businesses..."
* Enforce high-level security measures such as AES-256 encryption, role-based access control (Admin, Editor, Viewer), and GDPR & CCPA compliance.
* Ensure robust, real-time monitoring and error handling as specified in the PRD.
* Maintain a dual approach in the data transformation engine with both predefined templates and a visual workflow editor.
## App Flow Integration
* **Stack-Aligned Flow:**
* Example: "User Onboarding and Registration" → Implemented under `src/routes/onboarding.jsx` where users are introduced to FlowTechs, register, and are guided through Shopify OAuth authentication.
* Example: "Data Transformation Setup" → Located in `src/routes/transformation.jsx`, integrating both visual and SQL-like rule editing for immediate preview of data changes.
## Best Practices
* **react**
* Utilize functional components with hooks to manage state effectively.
* Keep component hierarchy shallow to enhance maintainability.
* Maintain a clear separation of concerns between UI and business logic.
* **nodejs**
* Use asynchronous patterns (async/await) to manage I/O effectively.
* Separate configuration, middleware, and routing for scalability.
* Implement comprehensive logging and error handling.
* **express**
* Structure endpoints following RESTful conventions.
* Use middlewares for security, authentication, and error handling.
* Keep routes modularized to promote code reuse.
* **postgresql**
* Employ parameterized queries to prevent SQL injection.
* Use connection pooling for optimal performance.
* Regularly backup and monitor database performance.
* **aws_s3**
* Set up appropriate bucket policies for secure access.
* Leverage versioning to maintain backups of critical data.
* Monitor access logs for unauthorized activities.
* **stripe**
* Ensure PCI compliance by using Stripe libraries and webhooks securely.
* Abstract payment logic to a dedicated service to isolate risks.
* Regularly test payment flows and failure cases.
* **shopify_oauth**
* Prioritize OAuth for primary authentication with Shopify.
* Maintain secure storage (AES-256 encryption) for tokens.
* Provide clear fallback mechanisms for alternative API integrations.
* **shadcn_ui**
* Follow modern design guidelines ensuring responsiveness and accessibility.
* Customize UI components to adhere to a minimalistic, modern aesthetic.
* Use theme toggling to support dark and light modes effectively.
* **node_cron**
* Use cron expressions that are easily understandable and maintainable.
* Implement error and retry logic for scheduled tasks.
* Maintain detailed execution logs and history for troubleshooting.
## Rules
* Derive folder/file patterns directly from tech stack documentation and enforced version rules.
* If a project uses React Router 6: enforce usage of `src/routes/` with encapsulated components for each route.
* For Node.js/Express backend: maintain a clear separation between routing, controllers, and middleware.
* Strictly adhere to security and privacy protocols as outlined in the PRD (AES-256, RBAC, GDPR/CCPA compliance).
* Never mix version patterns; for example, do not combine file structures from different routing frameworks within the same project.