This is my very first full-stack, full-CRUD web application. I built it as a part of DevMountain's immersive web-development program.
Live at >>> http://personalproject.thomaslowry.me
The entire site is mobile responsive. See previews of the mobile site at the bottom of the README.
I used the SlateJS rich text editor library to allow admins to create dynamic blog posts.
Users may log in to save their favorites, or they may continue without logging in, just to view the site.
All posts are visible organized into sections on the home page. Click on a section to view it individually. Click on a post to view the entire post.
The post page displays the entire post. Users may click the blue heart button to add the post as a favorite. Admins may click the 'Edit Post' button to edit the post.
Users may comment directly on the post or respond to other users' comments.
The navigation bar is hidden on the left and can be accessed through a smooth hover transition.
On the admin page, all posts are visible, including unpublished posts. Unpublished posts have a slightly darker background. Click the 'Create Post' button to go to the create page.
An admin may select a section from all currently existing sections, or they may create a new section. They also input a subsection, title, and subtitle for their post.
On the edit page an admin may update the section, subsection, title, and subtitle of their post.
Here they may also edit the body of their post. The text-editor is created by a library called SlateJS (https://docs.slatejs.org). My text editor in this app supports bold text (CTRL + B), italic text (CTRL + I), and code blocks
(CTRL + ~).
Click 'Save' to save changes to the post, and click 'Preview Post' to view the published post.
The preview page lets an admin know that a post has not been published yet.
Click the 'Publish' button to publish the post. Click the 'Go to Editor' button to make further changes to the post before publishing.