A comprehensive Salesforce DX project designed to demonstrate enterprise-level development practices, metadata management, and professional GitHub workflows. This project serves as both a functional device management application and an educational resource for Salesforce developers.
TechSolutionApp is a device inventory management system built on the Salesforce platform that showcases:
- Custom Object Design: Device__c and Device_Order__c objects with proper relationships
- Lightning Experience: Modern UI with custom tabs and Lightning App
- Data Management: Automated data seeding and order processing workflows
- Professional Development: Enterprise-grade metadata structure and deployment practices
By working through this project, you'll learn:
- Salesforce DX project structure and best practices
- Custom object and field creation with proper relationships
- Lightning App and tab configuration
- Permission set management and security
- Automated deployment using Salesforce CLI
- Professional Git workflow and documentation practices
Before getting started, ensure you have the following tools installed:
-
Salesforce CLI (Latest Version)
- Download: Salesforce CLI Installation Guide β Verified 2024
- Alternative: Direct Download for all platforms
- Verify installation:
sf --version - Minimum Version: v2.0.0 or higher
-
Visual Studio Code with Salesforce Extensions
- Download: VS Code β Verified 2024
- Install: Salesforce Extension Pack β Verified 2024
- Alternative IDEs: IntelliJ IDEA with Salesforce plugin, or any text editor
-
Git (Version Control)
- Download: Git Installation β Verified 2024
- Verify installation:
git --version - Minimum Version: v2.20.0 or higher
-
Node.js (Required for Salesforce CLI)
- Download: Node.js LTS β Verified 2024
- Verify installation:
node --version - Minimum Version: v18.0.0 or higher (LTS recommended)
- Operating Systems: Windows 10/11, macOS 10.14+, or Linux (Ubuntu 18.04+)
- Memory: 4GB RAM minimum (8GB recommended for optimal performance)
- Storage: 2GB free disk space
- Network: Stable internet connection for Salesforce org access
Before proceeding, validate your environment with these commands:
# Check all required tools
sf --version # Should show v2.0.0+
git --version # Should show v2.20.0+
node --version # Should show v18.0.0+
code --version # Should show VS Code version (optional)
# Verify Salesforce CLI functionality
sf --help # Should display help without errors
# Test Git configuration
git config --global user.name # Should show your name
git config --global user.email # Should show your emailβ All commands should execute without errors before proceeding with deployment.
- Visit Salesforce Developer Edition Signup
- Fill out the registration form with your details
- Choose a unique username (format: yourname@yourcompany.com.dev)
- Verify your email and complete the setup
- Note your username and password for CLI authorization
# Authorize your Developer Edition org
sf org login web --alias GTP5org --set-default
# Verify the connection
sf org display --target-org GTP5org# Clone the repository
git clone https://github.com/Olusammytee/TechSolutionApp.git
cd TechSolutionApp
# Verify project structure
ls -laFor experienced Salesforce developers who want to deploy immediately:
# 1. Authorize your org
sf org login web --alias GTP5org --set-default
# 2. Deploy the application
sf project deploy start --target-org GTP5org
# 3. Assign permissions
sf org assign permset --name TechSolutions_Admin --target-org GTP5org
# 4. Open your org and manually execute data seeding (see TROUBLESHOOTING.md for details)
sf org open --target-org GTP5orgπ Difficulty Level: Beginner to Intermediate β±οΈ Estimated Time: 15-30 minutes π Prerequisites: Complete the setup steps above
Follow these commands in sequence to deploy the complete application:
# Deploy all metadata components to your org
sf project deploy start --target-org GTP5orgWhat this does:
- Deploys custom objects (Device__c, Device_Order__c)
- Creates custom fields and relationships
- Configures Lightning App and custom tabs
- Sets up permission sets for security
# Assign admin permissions to your user
sf org assign permset --name TechSolutions_Admin --target-org GTP5orgWhat this does:
- Grants read/write access to custom objects
- Enables tab visibility in Lightning Experience
- Provides administrative capabilities for the app
# Execute data seeding script
sf apex run --file scripts/apex/data-seed.apex --target-org GTP5orgWhat this does:
- Creates sample Device records (MacBook Pro, iPhone 15, etc.)
- Generates sample Device Orders
- Demonstrates object relationships and data structure
# Launch your Salesforce org
sf org open --target-org GTP5orgThen navigate to App Launcher β Tech Solutions to explore the application.
π Difficulty Level: Beginner π For comprehensive troubleshooting, see TROUBLESHOOTING.md
Error: Element {http://soap.sforce.com/2006/04/metadata}object invalid at this location
Quick Fix: This is a known issue we've solved! The CustomTab metadata structure was incorrect. β Solution: Already fixed in this repository - the deployment should work correctly. π Learn More: See TROUBLESHOOTING.md for detailed explanation and solution.
Error: FormFactors is required for Lightning apps
Quick Fix: This is also already resolved in the current codebase.
β
Solution: The Lightning App metadata now includes the required <formFactors>Large</formFactors> element.
π Learn More: See COMPLETE_SETUP_EXPERIENCE.md for the full story of how we solved this.
Error: sf apex run --file command fails
Quick Fix: This is a known CLI issue with multiple workarounds. β Primary Solution: Use Developer Console method (detailed in TROUBLESHOOTING.md) β‘ Steps:
- Run:
sf org open --target-org GTP5org - Navigate to Developer Console β Debug β Execute Anonymous
- Copy code from
scripts/apex/data-seed.apexand execute
Windows Users:
- Use PowerShell or Command Prompt for CLI commands
- Ensure Node.js is in your PATH environment variable
- Git Bash is recommended for better Unix-like command experience
macOS/Linux Users:
- Use Terminal for all CLI commands
- May need to use
sudofor global npm installations - Ensure proper file permissions for script execution
- π Check TROUBLESHOOTING.md - Comprehensive solutions for all known issues
- π Review COMPLETE_SETUP_EXPERIENCE.md - See how we solved real deployment challenges
- π Search GitHub Issues - Check if others have encountered similar problems
- π¬ Create New Issue - Include your OS, error messages, and steps you've tried
- Salesforce Official: CLI Command Reference
- Community: Salesforce Developer Forums
- Learning: Salesforce DX Developer Guide
- Stack Overflow: Salesforce Questions
Device__c (Master)
βββ Name (Text)
βββ Type__c (Picklist: Laptop, Smartphone, Tablet)
βββ Stock_Quantity__c (Number)
βββ Price__c (Currency)
βββ Active__c (Checkbox)
β
βββ Device_Order__c (Detail)
βββ Device__c (Master-Detail to Device__c)
βββ Quantity__c (Number)
βββ Status__c (Picklist: Draft, Confirmed, Shipped)
- Tech Solutions App: Lightning application with custom branding
- Device Tab: Interface for managing device inventory
- Device Order Tab: Interface for processing orders
- TechSolutions_Admin: Permission set for administrative access
πΊοΈ New to our documentation? Check the DOCUMENTATION_INDEX.md for guided navigation!
This project includes comprehensive documentation designed for different learning levels:
- README.md - You are here! Complete setup and deployment guide
- TROUBLESHOOTING.md - Solutions for common issues encountered during deployment
- SALESFORCE_DEVELOPMENT_GUIDE.md - Comprehensive guide to Salesforce DX, metadata, and CLI commands
- DEPLOYMENT_VERIFICATION_GUIDE.md - Systematic verification procedures and testing methodology
- COMPLETE_SETUP_EXPERIENCE.md - Detailed documentation of our actual deployment journey, challenges, and solutions
- First-time users: Start with this README, then TROUBLESHOOTING.md if you encounter issues
- Learning Salesforce development: Follow with SALESFORCE_DEVELOPMENT_GUIDE.md
- Understanding verification: Use DEPLOYMENT_VERIFICATION_GUIDE.md after deployment
- Professional insights: Read COMPLETE_SETUP_EXPERIENCE.md for real-world context
After successful deployment, explore these learning paths:
- Complete Verification: Follow DEPLOYMENT_VERIFICATION_GUIDE.md
- Explore the Application: Navigate through Device and Device Order tabs
- Test Functionality: Create new records and test relationships
- π Enhancement Roadmap: Complete transformation plan for advanced features
- π― Phase 4 Implementation: Interactive learning components with real-time workflows
- π¨ Creative Features Showcase: Innovative and engaging learning experiences
- Lightning Development: Create custom Lightning Web Components with modern UI patterns
- Process Automation: Build sophisticated Flows and triggers for business logic
- Integration: Connect with external systems using REST APIs and Platform Events
- AI Integration: Implement Einstein Analytics and predictive features
- Performance Optimization: Advanced techniques for enterprise-scale applications
- Share your deployment experience and any additional solutions you discover
- Contribute improvements to documentation based on your learning journey
- Help other developers by answering questions and sharing insights
This project welcomes contributions! Areas where you can help:
- Documentation improvements: Based on your learning experience
- Additional troubleshooting scenarios: Share new issues and solutions you encounter
- Code enhancements: Improve metadata structure or add new features
- Educational content: Create tutorials, videos, or additional guides
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-improvement - Make your changes with clear, descriptive commit messages
- Test your changes thoroughly
- Submit a pull request with detailed description
- Check TROUBLESHOOTING.md - Most common issues are documented here
- Review COMPLETE_SETUP_EXPERIENCE.md - See how we solved real deployment challenges
- Search existing GitHub issues - Someone may have encountered the same problem
- Create a new issue - Include detailed error messages and system information
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ for the Salesforce Developer Community
This project demonstrates enterprise-level Salesforce development practices while remaining accessible to beginners. Each component is designed to teach specific concepts and can be extended for real-world applications.
Have you successfully deployed TechSolutionApp? Share your experience by creating an issue with the "success-story" label. Your journey could help other developers!