{"id":14967409,"url":"https://github.com/ezy/seedpress-cms","last_synced_at":"2025-10-25T19:30:59.811Z","repository":{"id":83684546,"uuid":"141080938","full_name":"ezy/seedpress-cms","owner":"ezy","description":"A headless CMS built in Express for PostgresQL using Sequelize. Generally follows the Wordpress post and term schema.","archived":false,"fork":false,"pushed_at":"2018-07-24T21:50:41.000Z","size":197,"stargazers_count":75,"open_issues_count":0,"forks_count":23,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-14T01:12:09.826Z","etag":null,"topics":["api","chi","cms","expressjs","headless","heroku","jwt","mit-license","mocha","node","nodejs","passport","passport-jwt","passport-local","postgres","postgresql","sequelize","sequelize-cli","sequelize-orm"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezy.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2018-07-16T03:14:49.000Z","updated_at":"2024-01-02T19:38:18.000Z","dependencies_parsed_at":"2023-07-01T11:30:30.154Z","dependency_job_id":null,"html_url":"https://github.com/ezy/seedpress-cms","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezy%2Fseedpress-cms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezy%2Fseedpress-cms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezy%2Fseedpress-cms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezy%2Fseedpress-cms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezy","download_url":"https://codeload.github.com/ezy/seedpress-cms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238200869,"owners_count":19433118,"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":["api","chi","cms","expressjs","headless","heroku","jwt","mit-license","mocha","node","nodejs","passport","passport-jwt","passport-local","postgres","postgresql","sequelize","sequelize-cli","sequelize-orm"],"created_at":"2024-09-24T13:38:01.097Z","updated_at":"2025-10-25T19:30:59.421Z","avatar_url":"https://github.com/ezy.png","language":"JavaScript","readme":"## 🌱 Seedpress Express API\n\n[![Build Status](https://travis-ci.com/ezy/seedpress-cms.svg?branch=master)](https://travis-ci.com/ezy/seedpress-cms)\n[![codecov.io](http://codecov.io/github/ezy/seedpress-cms/coverage.svg?branch=master)](http://codecov.io/github/ezy/seedpress-cms?branch=master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Twitter Follow](https://img.shields.io/twitter/follow/__ezy__.svg?style=social\u0026label=Follow)](https://twitter.com/__ezy__)\n\nSeedpress is a headless Node JS API server built with Express, for PostgreSQL using Sequelize ORM. It generally follows the logic and conventions of the Wordpress schema. Seedpress authenticates users using JSON web tokens managed by Passport. It's production ready, and should work as a great starter for any content based Progressive Web Application.\n\n* [Node.js](https://nodejs.org/en/)\n* [PostgreSQL](https://www.postgresql.org/)\n* [Sequelize](http://docs.sequelizejs.com/en/v3/)\n* [Sequelize-CLI](https://github.com/sequelize/cli)\n* [JSON Web Token](https://jwt.io/)\n\n**Hosting**\n\n* [Heroku](https://www.heroku.com/)\n\n**Testing**\n\n* [Mocha](https://mochajs.org/)\n* [Chai](http://chaijs.com/)\n* [Supertest](https://github.com/visionmedia/supertest)\n\n\n### Features\n\n* [X] Authentication with JSON Web Token\n* [X] Email, Password validations\n* [X] User login and registration\n* [X] Full API and Unit test coverage\n* [X] Page and Term models with belongsToMany two way relationship\n* [X] Easily deployable to Heroku (Procfile)\n\n### Schema\n\n* Post\n  * id\n  * postTitle\n  * postSlug   \n  * postType     \n  * postDate\n  * postContent  \n  * postAuthor     \n  * postImage      \n  * postMedia\n  * postStatus\n  * postExpiry\n  * postFrequency\n  * postTerms\n  * createdAt\n  * updatedAt\n\n* Terms\n  * id\n  * termType\n  * termName\n  * createdAt\n  * updatedAt\n\n* PostTerms\n  * termId\n  * postId\n  * createdAt\n  * updatedAt\n\n### To run locally\n\nMake sure to install and run PostgreSQL first. There are a list of package.json\nscripts that include core sequelize migrations and seeds.\n\n```\nbrew update\nbrew install postgres\n```\nThen you'll need to adjust the config file `config/config.js` to suit your setup.\n\nThen run `yarn reset` and your db will create from scratch and seed data under\nthe db name `seedpress_dev`.\n\nRunning `yarn dev` will start your dev server where needed.\n\n### Testing\n\nYou'll need to setup the test server using `yarn resettest`. To trigger the mocha/chai tests enter:\n```\nyarn test\n```\n\n#### Postman\n\nThere is a postman collection file for API testing and development in\n`test/seedpress-api.postman_collection.json`. It contains scripts and\nbasic CRUD for:\n\n* /auth\n  * [POST] Register (/register)\n  * [POST] Login (/login)\n\n* /posts\n  * [POST] Single post (/ - with auth)\n  * [PATCH] Single post (/:slug - with auth)\n  * [DEL] Single post (/:slug - with auth)\n  * [GET] All posts (/)\n  * [GET] Single post (/:slug)\n\n### To deploy on Heroku\n```\nheroku login\nheroku create\ngit push heroku master\n```\n\n#### Sequelize ORM\n\nSeedpress uses Sequelise ORM to interact with Postgres. Install globally\non your dev machine using `yarn global sequelize-cli` then run commands with\n`sequelize` or alternately run commands locally in your dev folder with the\nbuilt in dev package `./node_modules/.bin/sequelize init`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezy%2Fseedpress-cms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezy%2Fseedpress-cms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezy%2Fseedpress-cms/lists"}