Simple Blog: A Multi-User Blogging Framework

As part of my Full Stack Web Developer Nanodegree at Udacity, we were assigned the project of building a multi-user blogging software.

Its intent is to teach an intro to backend programming.

I built Simple Blog, a simple blogging framework.

It is built with Python using Jinja2 template engine, and can be deployed to Google App Engine. It’s database is built with Google Datastore and connects to the application with NDB Datastore API.

To handle encrypting passwords and authentication, I used the Passlib Python library.

See a working example of Simple Blog:

Here is the GitHub repo for:

Screenshot of Simple Blog

What It Does

Udacity required some basic functionality to be included in the final project. This included:

  • Users can create accounts
  • Account passwords are encrypted and stored in the database
  • Users can login and logout
  • Logged in users can create new posts, or edit and delete their existing posts

I learned how to build this functionality during the Udacity course.

As recommended by Udacity, I expanded upon these capabilities by adding:

  • Commenting – users can create comments; and edit/delete their own comments
  • Liking – users can like other users’ posts, and unlike ones they have already liked

The course did not teach how to build this functionality; I had to learn these on my own to implement properly.

What I Learned

I won’t lie. I struggled through a few aspects of building Simple Blog.

But struggling through helped me learn quite a bit.

Here’s just some of what I learned:

Ways To Improve

There are a few things I’d still like to do to improve upon this application:

  1. I’d like to introduce some  CSS to give it basic styling. But because I want this to be a framework, I want the styling to be easily changed or customized.
  2. Right now when a post is displayed, it outputs as preformatted text. I’d like it to output HTML.
  3. Add more functionality to the like, such as showing who else has liked a post.
  4. Simple Blog was built to run on Google App Engine. I’d like to build it so it can run on other platforms (such as a server through AWS).
  5. While user passwords are stored securely, if someone copies a cookie from one browser to another, they can be logged in to a user’s account. I’d like to research an implement a way to prevent this. I believe tokens may help with this, but need to learn more about them.
  6. I want to build a more extensive user dashboard. Right now, user’s can log out and create a new post from the dashboard. It’d be nice to allow them to view their own posts, and view posts they’ve liked.

Photo Credit: NOGRAN s.r.o.Some rights reserved 

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s