Files
metabuilder/docs/getting-started/NEW_CONTRIBUTOR_PATH.md
johndoe6345789 b3e17e7dd4 feat: Add troubleshooting guide and enhance act scripts
- Created a new troubleshooting guide in README.md for common issues and testing problems.
- Updated package.json to include new act commands for linting, type checking, building, and diagnosing workflows.
- Added a pre-commit hook script to validate workflows before commits.
- Enhanced run-act.sh script with logging, Docker checks, and improved output formatting.
- Improved test-workflows.sh with an interactive menu and performance tracking.
- Introduced setup-act.sh for quick setup and testing of act integration.
2025-12-25 13:16:45 +00:00

186 lines
5.6 KiB
Markdown

# New Contributor Path
A guided learning path through MetaBuilder documentation for new team members.
## 🎯 Your Learning Journey (2-3 hours)
This path guides you through the essential concepts in a logical order. Follow the sections sequentially.
### Phase 1: Foundation (30 minutes)
Understand what MetaBuilder is and how it's structured.
1. **[Project Overview](./README.md)** ⭐ **START HERE**
- What MetaBuilder does
- Key features
- Tech stack overview
2. **[Executive Brief](../guides/EXECUTIVE_BRIEF.md)**
- High-level business context
- Key stakeholders
- Project goals
3. **[Product Requirements](./PRD.md)**
- Feature list
- User personas
- Requirements breakdown
### Phase 2: Architecture Fundamentals (45 minutes)
Learn how MetaBuilder is architected.
4. **[5-Level Permission System](../architecture/5-level-system.md)** ⭐ **CRITICAL**
- Permission hierarchy (Public → User → Admin → God → Supergod)
- Role-based access patterns
- Multi-tenant considerations
5. **[Data-Driven Architecture](../architecture/data-driven-architecture.md)**
- 95% JSON/Lua philosophy
- Minimal TypeScript
- Declarative patterns
6. **[Package System](../architecture/packages.md)**
- How packages work
- Package structure
- Self-contained modules
7. **[Generic Component Rendering](../architecture/generic-page-system.md)**
- Component declaration via JSON
- RenderComponent pattern
- Dynamic UI composition
8. **[Database Design](../architecture/database.md)**
- Schema overview
- Multi-tenant isolation
- DBAL integration
### Phase 3: Development Workflow (45 minutes)
Learn how to develop with MetaBuilder.
9. **[Quick Start](./README.md#quick-start)** (if available in getting-started/README.md)
- Development environment setup
- Running the project locally
- Common commands
10. **[Testing Guidelines](../testing/TESTING_GUIDELINES.md)** ⭐ **REQUIRED**
- Test structure
- Parameterized testing
- Coverage requirements
11. **[Refactoring Strategy](../refactoring/REFACTORING_STRATEGY.md)**
- Code quality standards
- Component size limits (150 LOC)
- TypeScript reduction principles
12. **[Lua Scripting Guide](../lua/snippets-guide.md)**
- Lua sandbox execution
- Script patterns
- Integration with TypeScript
### Phase 4: Common Tasks (30 minutes)
Learn how to accomplish typical work items.
13. **[Component Development](../guides/getting-started.md)** (or component development guide)
- Creating new components
- Using RenderComponent
- Testing components
14. **[DBAL Integration](../implementation/DBAL_INTEGRATION.md)**
- Database operations
- Using Database helper class
- Query patterns
15. **[Package Creation](../packages/README.md)**
- Creating new packages
- Package structure
- Seed data
---
## 🔑 Key Concepts to Remember
As you work through this path, keep these principles in mind:
### ✅ DO:
- ✅ Use `Database` class for all database operations (never raw Prisma)
- ✅ Filter queries by `tenantId` for multi-tenant safety
- ✅ Use generic `RenderComponent` instead of hardcoded JSX
- ✅ Keep components < 150 LOC
- ✅ Write parameterized tests for every function
- ✅ Use Lua for data transformation, TypeScript for orchestration
### ❌ DON'T:
- ❌ Hardcode values in TypeScript (move to database/config)
- ❌ Forget tenantId in queries (breaks multi-tenancy)
- ❌ Create new database fields without running `npm run db:generate`
- ❌ Commit code without tests passing
- ❌ Build custom components when JSON config would work
- ❌ Add fields/operations to DBAL without updating YAML first
---
## 📚 Reference Resources
Keep these handy as you develop:
- **[Copilot Instructions](../../.github/copilot-instructions.md)** - AI assistant context
- **[Master Navigation](../NAVIGATION.md)** - Complete docs index
- **[Troubleshooting](../troubleshooting/README.md)** - Common issues
- **[Quick References](../testing/TESTING_QUICK_REFERENCE.md)** - Testing patterns
---
## 🎓 Learning Paths by Role
### Frontend Developer
1-4, 7, 10-15 in the main path, plus:
- [Component Architecture](../architecture/generic-page-system.md)
- [SASS Configuration](../guides/SASS_CONFIGURATION.md)
### Backend Developer
1-6, 8-9, 14 in the main path, plus:
- [DBAL Integration](../implementation/DBAL_INTEGRATION.md)
- [Database Migrations](../migrations/README.md)
- [API Reference](../api/platform-guide.md)
### DevOps/Infrastructure
1-2, plus:
- [Deployment Guide](../deployments/README.md)
- [Docker Setup](../deployments/README.md#docker)
- [CI/CD Workflows](../deployments/GITHUB_WORKFLOWS_AUDIT.md)
### QA/Testing
1-3, 10-11, plus:
- [Testing Implementation](../testing/TESTING_IMPLEMENTATION_SUMMARY.md)
- [E2E Testing](../testing/README.md)
---
## ✅ Completion Checklist
After completing this path, you should be able to:
- [ ] Explain the 5-level permission system
- [ ] Describe why MetaBuilder is 95% JSON/Lua
- [ ] Create a new component using RenderComponent
- [ ] Write a parameterized test with 3+ cases
- [ ] Run the project locally and make a simple code change
- [ ] Query data safely with tenantId filtering
- [ ] Create a new package with seed data
- [ ] Run the test suite and see all tests pass
- [ ] Explain the package system architecture
- [ ] Understand DBAL's role in the system
---
## 💬 Questions?
If something isn't clear:
1. Check [Troubleshooting](../troubleshooting/README.md)
2. Search for keywords in [Master Navigation](../NAVIGATION.md)
3. Review the [Copilot Instructions](../../.github/copilot-instructions.md) for patterns
Welcome to MetaBuilder! 🚀