Simple manga (Japanese Comics) reader application written on Flask with Postgres database.
- user profile, user subscriptions, user statistics, user rating
- manga, chapter, manga subscriptions , tags, comments
- post news, popular discussions
- administrator moderate users and comments
- send email using queue
- Server: Python Flask
- Database: Postgres
- Message-broker: RabbitMQ
- Task queue: Celery
These environment variables are needed to run the site
MAIL_USERNAME=
MAIL_PASSWORD=
MANGA_MAIL_SENDER=
RECAPTCHA_PUBLIC_KEY=
RECAPTCHA_PRIVATE_KEY=
FLASK_APP=
FLASK_CONFIG=
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
SQLALCHEMY_DATABASE_URI=
SECRET_KEY =
git clone https://github.com/JC5LZiy3HVfV5ux/MangaLibrary.git
cd MangaLibrary
Set environments
Set Bootstrap 5
sudo docker-compose up
git clone https://github.com/JC5LZiy3HVfV5ux/MangaLibrary.git
cd MangaLibrary
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
Set environments
If SQLALCHEMY_DATABASE_URI is empty, then it will be created SQLite database
python3 db_create.py
Download Bootstrap 5 and add folders in app/static/js/bootstrap/, app/static/css/bootstrap/
flask run
Tasks:
- task.email.change_email
- task.email.confirm
- task.email.password_reset
Run worker for queue email
celery -A worker.celery worker --loglevel=INFO -Q email
Run Flower for worker
celery -A worker.celery flower
Run RabbitMQ server
sudo rabbitmq-server start -detached
Run unittest:
flask test
Run unittest using test_names:
flask test tests.test_basics
Obtaining code coverage reports:
flask test --coverage