Git Product home page Git Product logo

wid-blog-frontend's Introduction

Write It Down (Frontend)

License Build Status Pages Build Status

Quick Install (node js) | About | Features | Authors | Live Demo

Write It Down - Frontend is a free to use fully-featured SPA blog built with Angular 8.

(Also, don't forget to check out the wid-blog-backend. ๐Ÿ˜‰)

wid-blog-backend preview

About

Write It Down - Frontend is a blogging Single Page Application that utilizes a REST API (wid-blog-backend to be more precise). It has all the basic features that a blogger needs including posts, pages, tags, admin dashboard, etc. It includes a really useful yet minimal and distraction-free WYSIWYG editor powered by TinyMCE.

This project (especially the inline post editor) was inspired by Ghost and Medium but it only includes the minimal and most necessary features.

Features

Write It Down (Frontend) is featured enriched SPA. It has almost everything a true writer needs to start writing their thoughts down. Not just the functionality but it is also responsive and minimal in its user interface. It has a mobile-first approach responsive design.

It is divided into two feature modules.

  • The primary and public module is home. This module is responsible for showing posts, pages, author-page, tags, and tag-page to the public users.
  • The second and the most important feature module is admin. It is lazy-loaded and is only available for users that are registered in the database (they have to log in to access it). This module contains all the core features such as posts, pages, tags, users, and settings, etc.

User Authentication

As stated above the admin dashboard is protected by an authentication guard and is only accessible if you log in. JWT is mainly used for authentication. Once the user logs in their details along with the token is saved to local storage. JWT token expires after a specific time (after 1 hour in wid-blog-backend). This web app automatically refreshes the expired user token if it gets an unauthorized error.

This SPA also contains role-based authorization which basically means that some features are limited to users with specific roles.

Role based authorization is based on these three roles:

  • superadmin: Can do all actions such as creating a post (article), a page, adding tags, adding new users or editing existing users and changing blog settings.

  • admin: Can do all the things a superadmin can do but can't create or modify existing superadmins and their posts.

  • editor: Can only show their content, edit their own profile but can't modify or show or modify the content of superadmins or admins.

wid-blog-frontend users preview

True WYSIWYG Editor

Ali Raza has turned TinyMCE(a rich text editor) into an experience while integrating it into this web app. You'll get a true WYSIWYG experience because the post looks the same in the editor and the actual public blog. The included editor has the following key features:

  • Code syntax highlighting: You can add code snippets of almost all major technologies.
  • Basic blog post features: h2, h3, blockquote, link, bold, italic, and lists.
  • Image upload: Images are first uploaded to the API server and then get included in the blog-post. wid-blog-frontend blog-post editor preview

ย  Apart from all the above key features, it has a lot of other miscellaneous features such as:

  • A primary navbar at the top containing all the published pages.
  • A secondary navbar(which is scrollable if overflow) containing all the tags.
  • Individual tag page which indexes all the posts containing a specific tag.
  • Author page which displays author profile and all their published posts.

So, a web app coded by just one individual, having this much beauty, is worth trying right? ๐Ÿ˜Œ

Getting Started

These instructions will get you a copy of this project running on your local machine in dev mode.

Prerequisites:

  • A headless CMS (RESTful) that provides the required routes and backend features such as wid-blog-backend (recommended).

  • Node JS

  • Git

  • A command line interface

Cloning repository:

Start by cloning the repository on your local machine using git:

git clone https://github.com/0xaliraza/wid-blog-frontend

Change directory to the project folder:

cd wid-blog-frontend

Install all npm modules:

npm install

If you have already setup wid-blog-backend (a headless CMS made specifically for this web-app) and it is availble at http://localhost:8000 then you are good to go. Otherwise if you have coded your own backend CMS which supports all the required routes and is available at some other URL then you'll need to configure angular environments before continuing.

Now lets serve the app locally:

npm start --o

By now, you should have a running Write It Down (Frontend) instance at http://localhost:4200 without any errors. You can add some users in the backend database and login with those credentials. Cheers! ๐Ÿป

Authors

Ali Raza (me) ๐Ÿ™ƒ

Find Me Online

Feel free to contact me for any kind of help or information. Let's get connected! :)

To Do

  • Testing
  • Search buttons
  • Hybrid Rendering
  • CI/CD

wid-blog-frontend's People

Contributors

0xaliraza avatar dependabot-preview[bot] avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.