Devamani11D / salt-app-kickstart

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.
10 stars 26 forks source link
gssoc-ext hacktoberfest-accepted hactoberfest
# 🌟 SALT-APP-KICKSTART πŸ“˜πŸ–ŒοΈ ![npm](https://img.shields.io/npm/v/salt-app-kickstart?style=flat-square) ![npm](https://img.shields.io/npm/dt/salt-app-kickstart?style=flat-square)

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:

πŸŽ₯ Video Demonstration

🌟 Why Salt App Kickstart?

πŸ›  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

πŸ›  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

πŸ’» 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.

  3. Build for production:

    npm run build

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

  4. 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.

Back to Top


Readme Quotes