Skip to content

ghoshabhi/Multi-User-Blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Multi User Blog

The Multi-User Blog site is a blogging website where people can write blogs about their favourite topics. Registered users can "Like" & "Comment" on the posts. The live site can be visited here: your-own-blog.appspot.com

Table of Contents

  1. Authors and Contributors
  2. How to deploy the app?
  3. Directory Structure
  4. Resources Used
  5. Future Improvements

1. Authors and Contributors

I, Abhishek Ghosh am the developer for this site. Also, there were major contributions from Ian Gristoi and Abigail Mathews. I thank them for their contributions to the site!

2. How to deploy the app ?

Follow the steps below to run the app :

  1. Download Google App Engine Console
  2. Clone the repository from https://github.com/ghoshabhi/Multi-User-Blog.git
  3. To run locally :
    • Unzip the contents from the cloned directory and find the file "app.yaml".
    • Open the app engine console and choose the option "Add an existing application" from the Menu bar.
    • Navigate to the location where the repo was cloned.
    • Click the "Run" button and navigate to the port mentioned for the app in the app engine console. If this is the first time you're running the app you will have the site open at : localhost:8080
  4. If you want to visit the live hosted app, visit this URL : your-own-blog.appspot.com

3. Directory Structure

|__
   |__ static
      |__ login.css
      |__ styles.css
      |__ ...
   |__ views
      |__ master.html
      |__ login.html
      |__ home.html
      |__ 404.html
      |__ ...
   |__ handlers
      |__ __init__.py
      |__ base_handler.py
      |__ registration_handler.py
      |__ new_post_handler.py
      |__ ...
   |__ models
      |__ __init__.py
      |__ post.py
      |__ user.py
      |__ ...
   |__ utility
      |__ __init__.py
      |__ ...
   |__ app.yaml
   |__ favicon.ico
   |__ index.yaml
   |__ main.py
   |__ README.md
  1. static : This folder contains all the CSS/JS/Image resources
  2. views : This folder contains all the template files.
  3. models: Contains schema definitaions for all the models
  4. handlers: Contains handlers to handle each individual route
  5. utility: Has helper functions and jinja filters
  6. app.yaml : Has all the app configurations
  7. favicon.ico : The website icon seen in the tab
  8. find_utf8.py : Utility script written to remove the UTF8 characters from a file
  9. index.yaml : Contains index definitions
  10. main.py : Houses the routing configurations and runs the webapp

4. Resources

  • Python is used as the scripting language for the server
  • jinja2, a templating library for Python & natively implemented in Google App Engine webapp2, GAE's main library
  • ndb : The Google Datastore NDB Client Library allows App Engine Python apps to connect to Cloud Datastore.
  • hmac, hlib to enable encryption
  • re to enable Regular Expression check for email and password inputs
  • Front-end frameworks : HTML,CSS, jQuery, clippy.js, TinyMCE editor, toastr.js
  • App Engine : Google App Engine (GAE), Google's platform as a service solution

5. Future Improvements

  • Use ndb.BlobKeyProperty for Photo uploads
  • Implement tags for each post
  • Show posts according to dates
  • Filter by tags, dates and author

Any suggestions to the site are welcomed. Please email me at abhighosh18@gmail.com to share your suggestions