Giter VIP home page Giter VIP logo

adonis-packages's Introduction

AdonisJS Packages

Discover the best AdonisJS packages

Introduction

This is the source code of the AdonisJS Packages website. The website is built using:

If you are looking for a good starting point to learn AdonisJS, then this repo may be a good starting point for you. It is a simple website, but it covers a lot of concepts like:

  • How we can super easily build a monolithic application using AdonisJS, InertiaJS and VueJS and still have a SPA feeling. No state management, routing, API calls, loading spinners, error management needed front-end side.
  • IoC container and Dependency injection using AdonisJS. For example, we leverage them to easily test our controller and commands without having to fetch real data from npm and GitHub APIs
  • Developing custom commands with pretty prompts and spinners using AdonisJS Ace
  • Testing commands, controllers, and service using IoC container, API Client, and Inertia test helpers
  • End-to-end testing using Playwright
  • Dockerize the application in order to make it easy to deploy
  • GitHub Actions CI/CD: we use GitHub Actions to run our tests, check linting, type checking and build the application image before deploying it to our server
  • Caching using BentoCache: instead of calling the npm and GitHub APIs on each request, we use a 2-layer (Memory + SQLite) cache system to store the data and refresh it only when needed. See ./config/cache.ts for more details.
  • How to setup Vite/ESLint (Flat config)/Prettier/TSconfig
  • Payload validation using VineJS
  • Dynamic OpenGraph image generation

Contributions

Add a new package

The packages database is a simple collection of YAML files, where each file represents a package. Files are located in ./content/packages directory. If you want to add a new package, you can create a new file in the same directory, or preferably, use the node ace add:package command.

Custom Icon

If you want to add an icon for you package, make sure to pick an appropriate image, not too big, not too small, in correct quality. Once you have the image, make sure to add it in /public/icons directory, and then add the path in the icon field of your package yaml file.

Launch the website

In order to run the website locally, you need to:

  • Install dependencies using pnpm install
  • Compile the package database using node ace build:packages
  • Create your .env file using the .env.example file. Use node ace generate:key to generate a new key and, not mandatory, use gh auth token to generate a new Github token.
  • Migrate and seed your database using node ace migration:fresh --seed
  • Start the dev server using node ace serve --watch

Then you can visit the website at http://localhost:3333

adonis-packages's People

Contributors

julien-r44 avatar romainlanz avatar bitkidd avatar melchyore avatar batosai avatar barbapapazes avatar xstoudi avatar kabbouchi avatar thetutlage avatar monojson avatar shiny avatar michaelbelgium avatar mdsadiqueinam avatar mcsneaky avatar maximemrf avatar lookingit avatar hsharma1996 avatar arthur-er avatar alexpechkarev avatar alfianazizi avatar djunehor avatar lncitador avatar tuanvu0995 avatar vinicioslc avatar sooluh avatar nowi5 avatar ndianabasi avatar dmdboi avatar macieklad avatar evoactivity avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.