Content Management System (CMS)

I created a CMS as a hobby project to learn backend development better and to learn Docker. I wrote it as a single-page app with Vue.js in the front-end, hapi.js as the Node.js server, Neo4j as the database, and I used Docker Compose for a multi-container Docker environment.

These are some of the features in this app:

  • Complete authentication flow with user registration, email verification, login, and password reset
  • Cookie authentication
  • Admin portal where the admin can manage user permissions
  • Public facing pages
  • Drag and drop to reorder pages
  • Show, hide, edit, delete pages
  • Data validation on both the server and the client
  • Mobile-first design
CMS pages CMS users

Feel free to clone the repo and check out the code. You could follow the instructions in the README to run this app on your computer in Docker, but it might be a bit of a hassle because my environment variables for the database and other features are not included in the repo.

NOTE: I was experimenting with try/catch/finally blocks in this project, so the API endpoints are constructed a little differently from what you might normally see.