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.
MIT License
8 stars 10 forks source link
gssoc-ext hacktoberfest-accepted hactoberfest

🌟 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:

πŸŽ₯ Video Demonstration

Demonstration of the package

🌟 Why Salt App Kickstart?

πŸ›  Project Structure

Current Project Structure

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

Generated Project Structure

my-app/                         # Your newly created app
β”œβ”€β”€ public/                     # Static files for your app
β”œβ”€β”€ 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.html              # Main HTML file to be served (copied from the current structure)
β”‚   β”œβ”€β”€ 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                 |
  +-----------------------------------+
                  |
                  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                         |
  | LICENSE                           |
  | CONTRIBUTING.md                   |
  | CODE_OF_CONDUCT.md                |
  | 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.

πŸ“ 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!