{"id":19302066,"url":"https://github.com/codespede/pwoli","last_synced_at":"2025-04-22T10:33:31.405Z","repository":{"id":38336751,"uuid":"368992840","full_name":"codespede/pwoli","owner":"codespede","description":"Pwoli is a NodeJS/TypeScript framework written in TypeScript which can work independantly on a raw NodeJS/TypeScript environement OR, in co-ordination with any other frameworks or libraries like Express.js.","archived":false,"fork":false,"pushed_at":"2024-02-20T20:00:46.000Z","size":16145,"stargazers_count":50,"open_issues_count":0,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-02-20T21:24:53.407Z","etag":null,"topics":["activerecord","dataprovider","framework","mongoose","nodejs","rest-api","sequelize","typescript"],"latest_commit_sha":null,"homepage":"https://codespede.github.io/pwoli/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codespede.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-05-19T20:25:28.000Z","updated_at":"2024-02-20T21:24:56.162Z","dependencies_parsed_at":"2024-02-20T21:24:53.378Z","dependency_job_id":null,"html_url":"https://github.com/codespede/pwoli","commit_stats":null,"previous_names":["internetmango/pwoli"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codespede%2Fpwoli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codespede%2Fpwoli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codespede%2Fpwoli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codespede%2Fpwoli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codespede","download_url":"https://codeload.github.com/codespede/pwoli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223893941,"owners_count":17220973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activerecord","dataprovider","framework","mongoose","nodejs","rest-api","sequelize","typescript"],"created_at":"2024-11-09T23:19:48.259Z","updated_at":"2024-11-09T23:19:48.935Z","avatar_url":"https://github.com/codespede.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Github All Releases](https://img.shields.io/npm/dt/pwoli.svg?label=Total%20Installs)]()\n\n![npm](https://img.shields.io/npm/dw/pwoli?label=Weekly%20Installs)\n\nhttps://codespede.github.io/pwoli\n\n## Pwoli.js \n\nPwoli is a NodeJS/TypeScript framework written in TypeScript which can work independantly on a raw NodeJS/TypeScript environement OR, in co-ordination with any other frameworks or libraries like Express.js.\n\nPwoli can connect to any kind of ORMs by implementing thier corresponding [ORM Adapters](https://codespede.github.io/pwoli/api-docs/classes/ORMAdapter.html) and works with [Sequelize](https://sequelize.org) and [Mongoose](https://mongoosejs.com) out of the box at present by [SequelizeAdapter](https://codespede.github.io/pwoli/api-docs/classes/SequelizeAdapter.html) and [MongooseAdapter](https://codespede.github.io/pwoli/api-docs/classes/MongooseAdapter.html) respectively.\n\n_This means that, all Mongoose and Sequelize supported databases like MongoDB, PostgreSQL, MySQL, MariaDB, SQLite, and Microsoft SQL Server are readily usable with Pwoli at present._\n\n_For any other DB/ORM support, an ORM Adapter implementing [IORMAdapter](https://codespede.github.io/pwoli/api-docs/interfaces/IORMAdapter.html) has to be implemented. Please see [how to use a different ORM](https://codespede.github.io/pwoli/using-another-orm)_\n\n_Pwoli means \"super awesome\" and our intention is to make web app development \"super awesome\"_\n\n_A basic example of the API features provided by Pwoli:_\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/codespede/pwoli/blob/master/docs/images/API.gif\" height=\"70%\" width=\"70%\" style=\"margin-left: auto; margin-right: auto;\"/\u003e\u003c/p\u003e\n\n_A simple GridView:_\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/codespede/pwoli/blob/master/docs/images/GridView_big.gif\" height=\"70%\" width=\"70%\" style=\"margin-left: auto; margin-right: auto;\"/\u003e\u003c/p\u003e\n\n_A bit more complex GridView:_\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/codespede/pwoli/blob/master/docs/images/GridView2.gif\" height=\"70%\" width=\"70%\" style=\"margin-left: auto; margin-right: auto;\"/\u003e\u003c/p\u003e\n\n_A simple ListView:_\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/codespede/pwoli/blob/master/docs/images/ListView.gif\" height=\"70%\" width=\"70%\" style=\"margin-left: auto; margin-right: auto;\"/\u003e\u003c/p\u003e\n\n_An example of ActiveForm's capabilities:_\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/codespede/pwoli/blob/master/docs/images/ActiveForm.gif\" height=\"70%\" width=\"70%\" style=\"margin-left: auto; margin-right: auto;\"/\u003e\u003c/p\u003e\n\n\n\n### Main Features\n\n-   Fully flexible and extensible - thanks to the OOP based architecture.\n-   Frontend widgets like [ActiveForm](https://codespede.github.io/pwoli/input-forms), [GridView, ListView](https://codespede.github.io/pwoli/output-data-widgets) for SSR(Server Side HTML Rendering) applications.\n-   [Simple-to-setup REST APIs](https://codespede.github.io/pwoli/rest-api) for the backends of SPA applications, Mobile apps and other API consumers.\n-   Works on both raw NodeJS and TypeScript applications.\n-   Has reasonable defaults.\n-   Well documented and [typed](https://www.typescriptlang.org) code for [IDE Intellisense](https://en.wikipedia.org/wiki/Intelligent_code_completion).\n-   Can be used in an ongoing project or a new project. Pwoli doesn't require that for using it, the project should be started from scratch.\n\n### Installation\n\n```markdown\nnpm install pwoli@latest\n```\n\nIf you are using any ORM(like Mongoose) other than Sequelize, please [click here](https://codespede.github.io/pwoli/using-another-orm) to see details on how to configure it.\nEnter these lines in your application's entry script(most probably index.ts or index.js)\n\n```js\nimport { Application as Pwoli } from 'pwoli'; //if using ES6 modules or \"type\": \"module\" is set in your package.json\n//if the above doesn't work, try the below two lines as you might be using CommonJS:\nconst pkg = require('pwoli'); //if using CommonJS\nconst Pwoli = pkg.Application;\n// Pwoli is loaded!\n\n// Now set the viewPath for finding the views:\n// Please note: You don't need to set this if your application is just a REST API service\nPwoli.setViewPath(path.join(__dirname, 'views')); // The base path in which your view files are stored. Only applicable for SSR apps.\n\n//You're ready to go!\n```\n\n### Get Started\n\n-   Please note: If you are building the backend for an SPA, Mobile App or a REST API client, [click here](https://codespede.github.io/pwoli/rest-api) to jump to the tutorial on learning how to use Pwoli for rendering data from backend servers in a paginated, filtered and sorted manner for any model with the matter of a couple of lines of code.\n\nCheck out on one of our guides below for learning how to use Pwoli's features:\n\n-   [Data Widgets - GridViews, ListViews](https://codespede.github.io/pwoli/output-data-widgets)\n-   [Data Providers - ActiveDataProvider, ArrayDataProvider](https://codespede.github.io/pwoli/output-data-providers)\n-   [Creating Forms - via ActiveForms](https://codespede.github.io/pwoli/input-forms)\n-   [Validating Input - via Model validations and ActiveForms](https://codespede.github.io/pwoli/input-validation)\n-   [Html helper - to help you do anything in the HTML side](https://codespede.github.io/pwoli/html-helper)\n-   [REST APIs - Data Rendering made easy with a few lines](https://codespede.github.io/pwoli/rest-api)\n-   [Using a different ORM - If you are using an ORM other than Sequelize](https://codespede.github.io/pwoli/using-another-orm)\n\n### Try it out\n\nWe have made four sample apps in different environments for you to get started quickly by trying them out in your local:\n\n-   [Sample App - Pwoli with NodeJS](https://github.com/codespede/pwoli-node-sample)\n-   [Sample App - Pwoli with TypeScript](https://github.com/codespede/pwoli-nodejs-typescript-sample)\n-   [Sample App - Pwoli with Express.js and NodeJS](https://github.com/codespede/pwoli-express-sample)\n-   [Sample App - Pwoli with Express.js and TypeScript](https://github.com/codespede/pwoli-express-typescript-sample)\n\n### Credits\n\nPwoli is inspired from PHP's [Yii framework](https://www.yiiframework.com).\n\nKudos to [Mahesh](https://github.com/codespede), who is the brain behind Pwoli, and has high regards to Yii framework \u0026 he believes that this framework and its architecture has shaped his thoughts on modularized development methodologies.\n\nLast but not least, thanks to [Yadu Dev](https://github.com/yadavgoku) for his contributions to Pwoli.\n\n### Tests\n\n```\nnpm run test\n```\n\nMore tests are invited as contributions!\n\n### Contributing\n\nThe framework is [Open Source](LICENSE).\n\nYou may join us and:\n\n- [Report an issue](https://github.com/codespede/pwoli/blob/master/docs/internals/report-an-issue.md)\n- [Contribute to the core code or fix bugs](https://github.com/codespede/pwoli/blob/master/docs/internals/git-workflow.md)\n\n### Support or Contact\n\nPlease feel free to shoot a mail to codespede@gmail.com for any queries or concerns.\n\nWe'll be starting our Slack channel soon where you can directly chat with us on clearing your queries.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodespede%2Fpwoli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodespede%2Fpwoli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodespede%2Fpwoli/lists"}