npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

create-storm-stack

v0.1.0

Published

Official CLI utility for the STORM Stack

Downloads

5

Readme

S.T.🌀.R.M Stack CLI (beta)

Introducing the S.T.🌀.R.M Stack, the easiest way to create modern fullstack web application. We believe that using S.T.🌀.R.M will be a breeze 🙃

Requirements

The S.T.🌀.R.M stack has a few core requirements shown below

Supported Platforms

The S.T.🌀.R.M Stack CLI aims to be platform-agnostic once the core dependencies are met. That said, below shows platform support currently.

  • ✅ Linux (Ubuntu 22.04+)
  • ✅ MacOS
  • ✅ Windows

The Main Stack

Things to keep in mind

  • This is an early version of the CLI and things may change in future versions
  • Some things might not work properly with later versions or Python
  • When running on windows, it is better to use Powershell or Gitbash when running storm-dev via npm

Creating your first S.T.🌀.R.M Stack project

Creating the project

To create your first project, in a terminal window, run the following and answer the prompts

npx create-storm-stack@latest

The command above will start the scaffolding process. Once you answer all the prompts, the process will start. Once completed, the instructions for running the project will be printed out.

Project Naming Conventions

Import note: Project names follow Python conventions so spaces or special characters are not allowed

  • ✅ my_storm_project
  • ✅ mystormproject
  • ⛔ my-storm-project
  • ⛔ my storm project

Running your project

Activate the virtual environment

pipenv shell

Run the project

npm run storm-dev

By default, your newly created S.T.🌀.R.M Stack project will be accessible from http://127.0.0.1:5000

Database Stuff

The default database for your newly created S.T.🌀.R.M Stack project will have the same name as your project. For example, if your project was called my_project the mongodb uri would be mongodb://localhost:27017/my_project.

Note: You may change the database settings as needed for your project.

S.T.🌀.R.M Stack Module System

The S.T.🌀.R.M Stack makes use of modules where a module is a collection of backend (controller + model) and optional frontend components. You can think of modules kinda like resources. More information on this will be in the official documentation.

Creating a module

From the root of your S.T.🌀.R.M Stack project, you can run the following command to create a module

npx create-storm-stack@latest makeModule --name <module_name> [--plural <pluralized_module_name> --controllerOnly]

Note: the only required option is --name <module_name>

  • -name <module_name>: specifies the name of the module to be created. This name must be unique and follows the same naming conventions as above
  • --plural <pluralized_module_name>: optionally specifies the pluralized name of the module. Setting this will make API endpoints and frontend paths more REST-like
  • --controllerOnly: optionally specifies if the creation of frontend components should be skipped for the module being created

Examples of module creation

Here are a few examples to get you started with creating your own modules

Example of making a normal module

npx create-storm-stack@latest makeModule --name biscuit --plural biscuits

Example of making an api-only module

npx create-storm-stack@latest makeModule --name lemon --plural lemons --controllerOnly

Accessing your newly-created module

When a module is created, your can access the corresponding api endpoint at http://127.0.0.1:5000/api/<module_name> or http://127.0.0.1:5000/api/<pluralized_module_name>

Frontend components can be accessed at the http://127.0.0.1:5000/#/<module_name> or http://127.0.0.1:5000/#/<pluralized_module_name>.

Note: Further details will be provided in the developer docs/manual

Important Files & Folders (Module)

When a module is created, several file are created and others are updated as shown below.

  • storm_modules/storm_modules.json: this file manages the entire module system
  • storm_controllers: controllers created will be added to this folder. The storm_controllers/__init__.py file will be automatically updated
  • storm_routes/__init__.py: This file is automatically updated when a module is created. There is no need to manually update this
  • storm_models: models created will be added to this folder.
  • storm_fe_<frontend>/src/pages: Frontend components will be added to this folder.

Note: More details will be provided in the developer docs/manual