All Projects → plugcore → framework

plugcore / framework

Licence: MIT License
The target of this framework is to help in all the needs of a full featured API REST, from top to bottom, and at the same time having the best possible performance and security.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to framework

Cms
Statamic 3: The Core Composer Package
Stars: ✭ 965 (+996.59%)
Mutual labels:  headless, api-rest, content-management-system
Cockpit
Add content management functionality to any site - plug & play / headless / api-first CMS
Stars: ✭ 5,173 (+5778.41%)
Mutual labels:  headless, api-rest, headless-cms
vaahcms
VaahCMS is a laravel based open-source web application development platform shipped with a headless content management system (CMS).
Stars: ✭ 56 (-36.36%)
Mutual labels:  headless, content-management-system, headless-cms
laravel-storyblok
Make Laravel and Storyblok work together beautifully.
Stars: ✭ 45 (-48.86%)
Mutual labels:  headless, content-management-system, headless-cms
awesome-medusajs
A curated list of awesome resources related to MedusaJS 😎
Stars: ✭ 113 (+28.41%)
Mutual labels:  headless, headless-cms
statiq-starter-kontent-lumen
Lumen is a minimal, lightweight, and mobile-first starter for creating blogs using Statiq and Kontent by Kentico.
Stars: ✭ 22 (-75%)
Mutual labels:  headless, headless-cms
contentjet-api
Headless API-first content management system
Stars: ✭ 95 (+7.95%)
Mutual labels:  headless, headless-cms
pageflo
A new super flexible open source CMS
Stars: ✭ 34 (-61.36%)
Mutual labels:  content-management-system, headless-cms
Mymovies
A Flutter app which shows a list of popular movies.
Stars: ✭ 371 (+321.59%)
Mutual labels:  dependency-injection, api-rest
truthy
Open source headless CMS API written using NestJS, that has pre built modules like User Management, Role Management, Permission Management, Email Module, Account Settings, OTP, Throttling, RBAC support, Localization, and many more.
Stars: ✭ 200 (+127.27%)
Mutual labels:  api-rest, headless-cms
yllet
Yllet is a set of packages for the WordPress API for both React and non-React projects
Stars: ✭ 46 (-47.73%)
Mutual labels:  headless, headless-cms
FlexDotnetCMS
A powerful, flexible, decoupled and easy to use and Fully Featured ASP .NET CMS, it can also be used as a Headless CMS
Stars: ✭ 45 (-48.86%)
Mutual labels:  headless, headless-cms
Flama
🔥 Fire up your API with this flamethrower
Stars: ✭ 161 (+82.95%)
Mutual labels:  dependency-injection, swagger
Tsed
📐 Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline to make your code more readable and less error-prone.
Stars: ✭ 1,941 (+2105.68%)
Mutual labels:  dependency-injection, swagger
storybook-addon-headless
A Storybook addon to preview content from a headless CMS in components
Stars: ✭ 23 (-73.86%)
Mutual labels:  headless, headless-cms
startup-starter-kit
The Structured Content Startup Starter Kit
Stars: ✭ 42 (-52.27%)
Mutual labels:  headless, headless-cms
nuxt-ghost
Easy Ghost content API integration with Nuxt.js.
Stars: ✭ 27 (-69.32%)
Mutual labels:  headless, headless-cms
fetch
Isomorphic Wordpress API client and React hooks - super tiny, super fast.
Stars: ✭ 47 (-46.59%)
Mutual labels:  headless, headless-cms
Blog.core
💖 ASP.NET Core 6.0 全家桶教程,前后端分离后端接口,vue教程姊妹篇,官方文档:
Stars: ✭ 3,542 (+3925%)
Mutual labels:  dependency-injection, swagger
Loopback Next
LoopBack makes it easy to build modern API applications that require complex integrations.
Stars: ✭ 3,972 (+4413.64%)
Mutual labels:  dependency-injection, swagger

plugcore.com

The target of this framework is to help in all the needs of a full featured API REST, from top to bottom, and at the same time having the best possible performance and security.

Internally uses a custom dependency injection system to help with with the project architecture, and all the related modules such as API creation, database connection, etc, is integrated with this system. The dependency injector uses Typescript classes and decorators.

The API implementation is based on Fastify in order to create a lightweight server, and at the moment it only has a MongoDB connector as a database implementation, but support for other databases is on the way.

Documentation

All documentation is in the wiki:

Packages

Currently it's divided in the following packages:

  • @plugcore/core: Contains the core functionalities such as the dependency injector, logs, object validator and mapping, tests framework, cli, project configuration, etc.
  • @plugcore/web: Adds all the needed libraries to publish a REST API
  • @plugcore/ds-mongodb: MongoDB connector integrated the dependency injection and configuration systems.
  • @plugcore/ds-email: Email connector integrated the dependency injection and configuration systems.

Installation

The easiest way to start is to initialize the framework in a folder, usually a recently create GIT Repository that has been cloned:

mkdir myproject
- or -
git clone https://server.com/git/myproject.git

Now we simply have to execute the following

cd myproject
npx @plugcore/core init

Some questions will be prompted to determine the needs of the project, if this is your first time we recommend you to create a little demo with an in memory database mocking a MongoDB server, this will let us immediately start the server and start checking the basic functionalities of the framework.

Do you want to create a basic demo with API REST and a MongodDB client? (y/yes): yes
Do you want to use an in memory database mocked as MongoDB for development or tests purposes? (y/yes): yes

After the installation has finished, we will have a folder structure that looks like this:

myproject/                                -- Project folder
    ├── configuration/                    -- Folder to store all our configuration files
    │    ├── configuration.json           -- Default configuration file
    │    └── configuration.pro.json       -- Properties to override while production mode is activated
    ├── src                               -- Source files of the project
    │   ├── configuration                 -- Folder for the configuration types
    │   │   └── custom.configuration.ts   -- Interface for our custom configuration
    │   └── example                       -- Example entity folder, everything related to Example will be stored here
    │       ├── example.api.ts            -- File to store all our Example API definitions for input/output objects
    │       ├── example.controller.ts     -- API Rest controller that defines all the routes for Example
    │       ├── example.service.ts        -- Service that is connected to a MongoDB to make CRUD operations in the example collection
    │       └── example.shared.ts         -- All the interfaces, types, enums, etc. shared between the project of the entity Example
    ├── test                              -- Folder where we are going to store all of our test services
    │   └── example                       -- Folder for the tests related to the Example entity
    │       └── example-service.test.ts   -- Test service for src/example/example.service.ts
    ├── node_modules/                     -- NPM node_modules
    ├── package.json                      -- NPM package.json, with all the required dependencies and scripts
    └── tsconfig.json                     -- Typescript configuration file

And we can already execute one of the predefined commands to start the project:

npm start

Or if we want to start it in development mode, which will compile and restart the server automatically every time we make some changes, we can execute:

npm run dev

Now we can go to http://localhost:3000/api/documentation to see and test our created services.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].