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

@devsphere/expgen

v1.0.1

Published

A express scaffolding project to create express projects with the best practices and industry standards.

Downloads

6

Readme

@devsphere/expgen - scaffolding express application under 1 sec

@devsphere/expgen

A npm package for Express which helps in scaffolding the application from scratch in less than a minute. The package is built for both SQL and NoSQL databases, following best practices in Node.js with TypeScript, including logging, multi-threading, GitHub hooks, and Dockerfile to make the project production-ready.

Features

  • Scaffolds an Express project with a widely used MVC project structure.
  • Supports both SQL and NoSQL databases.
  • Implements best practices for Node.js with TypeScript.
  • Integrated logging with Winston.
  • Provides options for linting, prettier, validation, GitHub hooks, and Docker integration.

Clean Architecture Implementation

This project implements the principles of Clean Architecture as follows:

  • Entities or schema are stored in the model folder.
  • Services have access to models, ensuring separation of concerns.
  • Controllers only have access to services, facilitating loose coupling.
  • Routers have access to controllers, maintaining a clear separation of concerns.
  • app.ts contains all the logic related to the Express app setup.
  • Server clustering and related logic are handled in server.ts.

Installation

You don't need to install anything! Simply use the following command to scaffold your project:

  npx @devsphere/expgen myproject
  cd my-project
  npm install
  mv .env.example .env //replace the env variables

The command will prompt you with questions regarding your project setup, including database choice, linting, prettier, logging, validation, GitHub hooks, and Docker integration.

Usage

For SQL

  npm run prisma:generate //genrate prisma client to work with
  npm run prisma:migrate //create and migrate schema to your server
  npm run start:dev

For NoSQL

  //uncomment the code in server.ts
  npm run start:dev

For running on production and using clustering

  npm run build
  npm run start:prod

Contributing

Contributions are welcome! Feel free to pick any task from the future work section below and start working on it. For any questions or suggestions, please reach out on [email protected].

License

This project is licensed under the MIT License - see the LICENSE file for details.

Future Work

  • Adding GraphQL as an option.
  • Adding Domain-Driven Design (DDD) as another architecture option.
  • Integrating Swagger for API documentation.