/Micro-blog

web-based micro blog

Primary LanguagePythonMIT LicenseMIT

Micro-blog

MIT license

forthebadge ForTheBadge built-with-love ForTheBadge powered-by-electricity

Motivation

Content Management System provides CKEditor blogging style with user profile, commentary, interactions, file uploading, content real-time translation, followers, notifications,E-mail support, full-text search and APIs

Tools and Technologies:

Flask

SQLite

SQLAlchemy

Elasticsearch

HTML

CSS

Bootstrap

JavaScript

JQuery

AJAX

JSON

Gmail SMTP

i18n and l10n
Principles/Patterns: MVC, Blueprints, Mixins, Pagination, REST, Decorator and Single Responsibility

Details

This project has been developed on Ubuntu Bionic Beaver OS and FireFox browser 70.0.1 (64-bit)

Installation

Clone the repository

foo@bar:~$ git clone https://github.com/Abdulrahmannaser/Micro-blog.git

Environment

To create dockerized (isolated) environment contains only dependencies of the project and prevents interaction with your home ecosystem do the following:

foo@bar:~$ pip3 install virtualenvwrapper
foo@bar:~$ export WORKON_HOME=~/Envs
foo@bar:~$ mkdir -p $WORKON_HOME
foo@bar:~$ source ~/.local/bin/virtualenvwrapper.sh
foo@bar:~$ mkvirtualenv microblog

Then you will find your env has changed

(microblog) foo@bar:~$ 

Now we can install some software into the environment.

Dependencies

You have to intall requirements.txt to install dependencies

(microblog) foo@bar:~$ cd Micro-blog
(microblog) foo@bar:~/Micro-blog$ pip3 install -r requirements.txt

Mail support

You will find mail config with a test mail that I published it's password to cut the road for testing the app without worrying about mail cofig

Application Discovery

The flask command is installed by Flask, not your application; it must be told where to find your application in order to use it. The FLASK_APP environment variable is used to specify how to load the application.

(microblog) foo@bar:~/Micro-blog$ export FLASK_APP=app
(microblog) foo@bar:~/Micro-blog$ flask run
* Serving Flask app "app" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 208-528-382

Congrats! now you can access the app locally on the displayed url http://127.0.0.1:5000/

Contributing

Pull requests are welcome. For major changes please open an issue first to discuss what you would like to change.

Before submitting your PR, consider running some code formatter on the lines you touched or added. This will help reduce the time spent on fixing small styling issues in code review. Good options are yapf or autopep8 which likely can be integrated into your favorite editor.

Please refrain from formatting the whole file if you just change some small part of it. If you feel the need to tidy up some particularly egregious code, then do that in a separate PR.