LEMON Patterns is a comprehensive platform for requirements engineers, business analysts, and software developers to discover, use, and contribute to a growing catalog of requirements patterns and templates.
This system provides a standardized approach to requirements engineering through reusable patterns and implementation templates. It bridges the gap between theoretical requirements patterns and their practical implementation in software projects.
- Pattern Catalog: Browse, search, and filter requirements patterns by domain, category, and more
- Template Repository: Access implementation templates linked to specific patterns
- User Dashboard: Save favorite patterns and templates, track usage, and manage personal content
- Authentication: Secure user accounts with email and social authentication options
- Responsive Design: Fully responsive interface that works on desktop and mobile devices
- Real-time Updates: Template usage statistics and user interactions update in real-time
- Interactive UI: Modern, user-friendly interface with intuitive navigation
- React with TypeScript
- TailwindCSS for styling
- Shadcn UI component library
- React Router for navigation
- React Query for server state management
- Lucide React for iconography
- Supabase for authentication, database, and storage
- PostgreSQL database
- Supabase Edge Functions for serverless functionality
- Row Level Security (RLS) for data protection
├── public/ # Static assets
├── src/
│ ├── components/ # React components
│ │ ├── auth/ # Authentication components
│ │ ├── catalog/ # Catalog browsing components
│ │ ├── dashboard/ # User dashboard components
│ │ ├── layout/ # Layout components (navbar, footer)
│ │ ├── pattern/ # Pattern-related components
│ │ ├── template/ # Template-related components
│ │ └── ui/ # Reusable UI components
│ ├── contexts/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── integrations/ # Integration with external services
│ │ └── supabase/ # Supabase client and types
│ ├── lib/ # Utility functions and API helpers
│ ├── pages/ # Page components
│ └── types/ # TypeScript type definitions
├── supabase/
│ ├── functions/ # Supabase Edge Functions
│ └── migrations/ # Database migrations
└── ...
- Node.js 16+ and npm
- Supabase account
- Clone the repository
git clone https://github.com/yourusername/lemon-patterns.git
cd lemon-patterns- Install dependencies
npm install- Set up environment variables
SUPABASE_URL=your-supabase-url
SUPABASE_ANON_KEY=your-supabase-anon-key
- Start the development server
npm run devThe application uses the following main database tables:
profiles- User profile informationpatterns- Requirements patternstemplates- Implementation templatescategories- Pattern and template categoriesdomains- Application domainsreviews- User reviews for patterns and templatesuser_saved_items- User bookmarks for patterns and templates
The application uses Supabase Authentication with:
- Email/password authentication
- Social login providers (Google, GitHub)
- Session management
increment-template-usage- Tracks template usage counts
The application can be deployed:
- Via Supabase hosting
- To Vercel or Netlify with environment variables configured for Supabase
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by research in patterns-based requirements engineering
- Built using shadcn/ui components
- Special thanks to contributors and testers