Capstone Project for AppDev I, done under guidance of @AbhishekPOD and @nitinC
This is a markdown based blogging site. It provides live preview while writing the post. Most interactions in the app are asynchronous. App supports Google based Oauth 2.0 login and API key to authenticate APIs.
Flask
Bootstrap: Designing and styling
Flask MDE: Interactive editor for Markdown
Flask Restful: API
OpenAPI 3.0
Flask-Markdown
Google: Authentication
SQLite3: Database
REST based API for Entries, Comments and User. Some extra features have been added as PATCH on some endpoints. Architecture and Features The app has a set of controller files which has all the modifier functions. These functions have been used by API and routes as per requirements.
The app supports Oauth 2.0 Google login, hence needing a google account for the same. Once logged in, users can download the credentials for API, from the ‘Manage’ option on the profile page. The API supports both cookies based authentication as well as api_key in header. This is done in order to facilitate async functions on the app.
Users can create an entry by clicking on the add button at the navigation bar. Text can be entered plain or markdown. Live Preview can be seen aside the textbox. Local as well as external images are supported. No word limit has been set.
Markdown support for comments is not provided. They are asynchronous.
File upload is done through API ( async for app ) which returns filename/address that is immediately used by MD editor to add syntax for image. Preview of recently uploaded images is not shown immediately. This is a known issue.
App supports user data exports and exports posts, profile, comments on post in json format.
Markdown support for comments is not provided. They are asynchronous.