/Brevity

Brevity is a blog site for experience and resource sharing. Experienced people can share their knowledge and the difficulties they faced while learning a particular topic. Beginners can ask for resources and seek help from experts.

Primary LanguageCSS

Brevity

A blog site made for experience and resource sharing. Brevity is currently hosted on heroku platform.


Motivation

This is a blog site where experienced people can share their knowledge and the difficulties they faced while learning a particular topic. Beginners can ask for resources and seek help from experts. It will connect beginners with experts.
Currently most of us use Facebook for this purpose which is overwhelming and distracting. Brevity means precise and exact use of words. It will always encourage to the point discussion.

Features Implemented

  • A Responsive UI for users

  • User Authentication

    • Login, Register
    • Password Reset
  • User Profile

    • Update Profile
  • Post

    • CRUD operation
    • Upvote, Downvote
    • Comment
      • Anyone can Comment
      • can be deleted by Post Author and Comment Author
    • Resource
      • Post Author can Upload files with valid extensions (within specified size)
      • Anyone can Download Resource files from post
    • Users can Bookmark their favourite posts
    • Tag
      • Users can assign specific Tags to their post
      • Update Tag
  • Search Post with

    • Title
    • Tag (using 3rd bracket)
    • Admin defined Tag (e.g. If user searches with [dbms] tag then search results will contain posts of [dbms] tag along with [database] tag)
  • Sort Post

    • by Date
    • by Popularity
    • on search results
  • User Contribution

    • based on Upvote, downvote
    • Top Contributors list
  • Create/Edit post content using Rich text editor

    • Create Table
    • Insert image by url
    • various font styles
    • Numbered/Bulleted list
  • More Features:

    • Infinite scroll and lazy loading
    • One can see all post of a particular user by clicking on his/her username
    • User summary in a popup panel when hovering over the user's name

Used Technologies

  • Framework: Flask
  • Language: Python
  • Database: MySQL
  • Frontend: HTML, CSS, JavaScript, HTMX

Presentation video

Brevity presentation

Clone this Project

git clone https://github.com/riyadomf/Brevity.git

Run the Project in your Machine

Install virtual environment:

pip install virtualenv

Create your own environment:

virtualenv <yourenvname>

Activate your environemnt:

source <yourenvname>/Scripts/activate

Now install requirements.txt:

pip install -r requirements.txt

Edit the file named ".env.example" and assign SECRET_KEY, SQLALCHEMY_DATABASE_URI, MAIL_USERNAME, MAIL_PASSWORD according to instructions written in the file and rename the file name as ".env".

Create database from python CLI before running the server:

from brevity import create_app
from brevity import db
app = create_app()
app.app_context().push()
db.create_all()

Then run the server:

python run.py

Some Snapshots

Home Page

Sort

Post Update, Delete

Resource Files

Comment

Rich Text Editor

Rich Text Editor output

Search Result

Bookmark

Individual Post

User Summary Popover

Contributor List

Contributors