Skip to content

A CLI tool that can be installed as an npm package, featuring pre-installed Salt dependencies and templates such as AGGrid, Dashboard etc. Simplifies project setup by automatically launching on localhost.

Notifications You must be signed in to change notification settings

Devamani11D/salt-app-kickstart

Repository files navigation

🌟 SALT-APP-KICKSTART πŸ“˜πŸ–ŒοΈ

npm npm

Create a new Salt Design System app quickly and easily.

πŸš€ Quick Start

To create a new Salt app, run:

npx salt-app-kickstart@latest

What happens next:

  • You’ll be prompted for a few details, such as the project name and template choice.
  • The tool will automatically create the project structure tailored to your specifications.
  • It will install all necessary dependencies for a smooth development experience.
  • Finally, your app will launch on localhost, allowing you to start coding immediately!

πŸŽ₯ Video Demonstration

🌟 Why Salt App Kickstart?

  • Automatic Setup: Save time with pre-configured Salt Design System templates.
  • Flexible Templates: Includes popular templates like AGGrid and Dashboard.
  • Local Development: Automatically launches the app on localhost for immediate use.
  • GitHub Integration: Easily push your app to a GitHub repository.

πŸ›  Project Structure

Current Project Structure

salt-app-kickstart/
β”œβ”€β”€ templates/                     # Various project templates
β”œβ”€β”€ utilities                      # Files to be ignored by Git
  β”œβ”€β”€ check_install.js             # Script to verify installation prerequisites
  β”œβ”€β”€ copy_templates.js            # Utility for copying templates
  β”œβ”€β”€ exec_childprocess.js         # Handles child processes
  β”œβ”€β”€ install_dependencies.js      # Manages package installations 
  β”œβ”€β”€ push_to_github.js            # Pushes project to GitHub
  β”œβ”€β”€ run_in_localhost.js          # Launches app locally
  β”œβ”€β”€ copy_appheader.js            # copies navbar to generated app
β”œβ”€β”€documentation
  β”œβ”€β”€CODE_OF_CONDUCT.md            # Contributor code of conduct
  β”œβ”€β”€ CONTRIBUTING.md              # Contribution guidelines
  β”œβ”€β”€ KNOWN_ISSUES_AND_TASKS.md    # Document listing known issues
  β”œβ”€β”€ LICENSE                      # License details
β”œβ”€β”€public
  β”œβ”€β”€index.html                  # File to be copied to generated salt-app
β”œβ”€β”€src
  β”œβ”€β”€index.js                    # File to be copied to generated salt-app
β”œβ”€β”€ cli.js                       # Main entry point for the CLI tool
β”œβ”€β”€ package.json                 # Project metadata and dependencies
β”œβ”€β”€ package-lock.json            # Dependency lock file            
β”œβ”€β”€ readme.md                    # Project documentation         
└── video-thumbnail.gif          # Thumbnail for demo video
└── .gitignore                   # contains files to ignore

Generated Project Structure

my-app/                         # Your newly created app
β”œβ”€β”€ public/                     # Static files for your app
β”‚   β”œβ”€β”€ index.html              # Main HTML file to be served (copied from the current structure)
β”œβ”€β”€ src/                        # Source code of your app
β”‚   β”œβ”€β”€ templates/              # Various app templates
β”‚   β”œβ”€β”€ App.css                 # Main styles
β”‚   β”œβ”€β”€ App.js                  # Main application logic
β”‚   β”œβ”€β”€ App.test.js             # Test cases for the main app
β”‚   β”œβ”€β”€ index.css               # Styles for the index
β”‚   β”œβ”€β”€ index.js                # Main entry point for the app (copied from the current structure)
β”‚   β”œβ”€β”€ logo.svg                # Logo for the app
β”‚   β”œβ”€β”€ reportWebVitals.js      # Performance reporting
β”‚   └── setupTests.js           # Setup for testing
β”œβ”€β”€ package-lock.json           # Dependency lock file
β”œβ”€β”€ package.json                # Project metadata and dependencies
└── README.md                   # Project documentation
  • Starting Point: The entry point of the application is cli.js, which contains command's abstract logic to initiate the setup process. From cli.js, different functions are called to execute various utility scripts, leading to the generation of the project structure. Key files, such as index.js and index.html, are copied from the current project structure to the newly created app, ensuring that users have a solid foundation to start their development.

πŸ›  Project Flowchart

  +-----------------------------------+
  |         Salt App Kickstart        |
  +-----------------------------------+
                  |
                  | 
                  v
  +-----------------------------------+
  |               cli.js              |
  +-----------------------------------+
  |        main entry point           |
  |(contains command's abstract logic)|
  +-----------------------------------+
                  |
                  | Calls
                  v
  +-----------------------------------+
  |       Various Utility Scripts     |
  +-----------------------------------+
  | check_install.js                  |
  | copy_templates.js                 |
  | exec_childprocess.js              |
  | install_dependencies.js           |
  | push_to_github.js                 |
  | copy_appheader.js                 |
  | run_in_localhost.js               |
  +-----------------------------------+
                  |
                  v
  +-----------------------------------+
  |             index.js              |  <--- Copied to the generated structure
  +-----------------------------------+
  | main application logic            |
  +-----------------------------------+
                  |
                  v
  +-----------------------------------+
  |            index.html             |  <--- Copied to the generated structure
  +-----------------------------------+
  | main HTML file                    |
  +-----------------------------------+
                  |
                  v
  +-----------------------------------+  
  |          Project Metadata          |
  +------------------------------------+
  | package.json                       |
  | package-lock.json                  |
  +------------------------------------+
                  |
                  v
  +-------------------------------------------------+
  |        Project Documentation                    |
  +-------------------------------------------------+
  | README.md                                       |
  | documentation/LICENSE                           |
  | documentation/CONTRIBUTING.md                   |
  | documentation/CODE_OF_CONDUCT.md                |
  | documentation/KNOWN_ISSUES_AND_TASKS.md         |
  | .gitignore                                      |
  +-------------------------------------------------+

πŸ”§ Features

  • πŸ“¦ Pre-installed Salt Dependencies: Save time with built-in support for Salt Design System components.
  • πŸ“Š AGGrid and Dashboard Templates: Jumpstart your projects with ready-made grids and dashboards.
  • πŸ“± Local Dev Environment: The app automatically launches on localhost so you can start coding right away.
  • πŸ”— GitHub Integration: Quickly push your project to a GitHub repository with built-in commands.

πŸ’» Development Workflow

  1. Install dependencies:

    npm install
  2. Run the app:

    npm start

You can access your application by visiting http://localhost:3000 in your web browser. This will display your newly created app, allowing you to interact with it immediately.

  1. Build for production:

    npm run build

This creates an optimized, production-ready build of your app inside the build/ folder.

  1. Deploy your app to hosting services like GitHub Pages, Netlify, or Vercel. Each platform provides simple guides for deploying your app:

    • GitHub Pages: Push your build folder to a GitHub repository and enable GitHub Pages in the settings.
    • Netlify: Drag and drop your build/ folder to the Netlify dashboard for instant deployment.
    • Vercel: Connect your GitHub repository and follow the prompts to deploy.

🌐 Salt Design System Integration

The Salt Design System is pre-installed, offering reusable components and consistent UI elements for rapid development. With pre-styled components, you can focus on your app's logic and functionality while maintaining a cohesive design throughout your project.

πŸ™Œ Contributing

We welcome contributions! If you’d like to help improve this project, please check out our Contributing Guide for details on how to get involved.


Thanks πŸ™Œ to all the contributors:

contributors logos

Repository Metrics

🌟 Stars 🍴 Forks πŸ› Issues πŸ”” Open PRs πŸ”• Close PRs πŸ› οΈ Languages πŸ‘₯ Contributors
Stars Forks Issues Open Pull Requests Close Pull Requests GitHub language count GitHub Contributors count

πŸ“ License

This project is licensed under the MIT License. For more details, check the LICENSE file in this repository.

❓ Questions?

If you have any questions or suggestions, feel free to reach out. We’re here to help you build awesome apps with Salt!

Star-history-chart

Made with ❀️ by Duddekunta Devamani.


Readme Quotes

About

A CLI tool that can be installed as an npm package, featuring pre-installed Salt dependencies and templates such as AGGrid, Dashboard etc. Simplifies project setup by automatically launching on localhost.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published