Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ezy/seedpress-cms
A headless CMS built in Express for PostgresQL using Sequelize. Generally follows the Wordpress post and term schema.
https://github.com/ezy/seedpress-cms
api chi cms expressjs headless heroku jwt mit-license mocha node nodejs passport passport-jwt passport-local postgres postgresql sequelize sequelize-cli sequelize-orm
Last synced: 28 days ago
JSON representation
A headless CMS built in Express for PostgresQL using Sequelize. Generally follows the Wordpress post and term schema.
- Host: GitHub
- URL: https://github.com/ezy/seedpress-cms
- Owner: ezy
- License: mit
- Created: 2018-07-16T03:14:49.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-07-24T21:50:41.000Z (over 6 years ago)
- Last Synced: 2024-04-14T01:12:09.826Z (7 months ago)
- 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
- Language: JavaScript
- Homepage:
- Size: 192 KB
- Stars: 75
- Watchers: 5
- Forks: 23
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 🌱 Seedpress Express API
[![Build Status](https://travis-ci.com/ezy/seedpress-cms.svg?branch=master)](https://travis-ci.com/ezy/seedpress-cms)
[![codecov.io](http://codecov.io/github/ezy/seedpress-cms/coverage.svg?branch=master)](http://codecov.io/github/ezy/seedpress-cms?branch=master)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Twitter Follow](https://img.shields.io/twitter/follow/__ezy__.svg?style=social&label=Follow)](https://twitter.com/__ezy__)Seedpress 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.
* [Node.js](https://nodejs.org/en/)
* [PostgreSQL](https://www.postgresql.org/)
* [Sequelize](http://docs.sequelizejs.com/en/v3/)
* [Sequelize-CLI](https://github.com/sequelize/cli)
* [JSON Web Token](https://jwt.io/)**Hosting**
* [Heroku](https://www.heroku.com/)
**Testing**
* [Mocha](https://mochajs.org/)
* [Chai](http://chaijs.com/)
* [Supertest](https://github.com/visionmedia/supertest)### Features
* [X] Authentication with JSON Web Token
* [X] Email, Password validations
* [X] User login and registration
* [X] Full API and Unit test coverage
* [X] Page and Term models with belongsToMany two way relationship
* [X] Easily deployable to Heroku (Procfile)### Schema
* Post
* id
* postTitle
* postSlug
* postType
* postDate
* postContent
* postAuthor
* postImage
* postMedia
* postStatus
* postExpiry
* postFrequency
* postTerms
* createdAt
* updatedAt* Terms
* id
* termType
* termName
* createdAt
* updatedAt* PostTerms
* termId
* postId
* createdAt
* updatedAt### To run locally
Make sure to install and run PostgreSQL first. There are a list of package.json
scripts that include core sequelize migrations and seeds.```
brew update
brew install postgres
```
Then you'll need to adjust the config file `config/config.js` to suit your setup.Then run `yarn reset` and your db will create from scratch and seed data under
the db name `seedpress_dev`.Running `yarn dev` will start your dev server where needed.
### Testing
You'll need to setup the test server using `yarn resettest`. To trigger the mocha/chai tests enter:
```
yarn test
```#### Postman
There is a postman collection file for API testing and development in
`test/seedpress-api.postman_collection.json`. It contains scripts and
basic CRUD for:* /auth
* [POST] Register (/register)
* [POST] Login (/login)* /posts
* [POST] Single post (/ - with auth)
* [PATCH] Single post (/:slug - with auth)
* [DEL] Single post (/:slug - with auth)
* [GET] All posts (/)
* [GET] Single post (/:slug)### To deploy on Heroku
```
heroku login
heroku create
git push heroku master
```#### Sequelize ORM
Seedpress uses Sequelise ORM to interact with Postgres. Install globally
on your dev machine using `yarn global sequelize-cli` then run commands with
`sequelize` or alternately run commands locally in your dev folder with the
built in dev package `./node_modules/.bin/sequelize init`.