Skip to content

A blog web app solely built for chemists with 2-Factor Authentication enabled. Uses Jenkins for devsecops, GitHub Actions to automate git pulling, docker image build, tagging and pushing and Docker for containerizing the app, jenkins, SonarQube and portainer.

License

kevinkoech357/kemistry

Repository files navigation

Kemistry

blog_image

Kemistry is a full-stack blog web app designed exclusively for chemists, including professionals, students, and enthusiasts alike. Users can create posts covering various branches of chemistry, such as organic, physical, inorganic, medicinal, or general chemistry. Additionally, users have the ability to comment on posts. The app comes with 2-Factor Authentication, either by email or authenticator app, enabled by default.

Table of Contents

Required to Run

Before running Kemistry, ensure you have the following prerequisites installed:

  • Python 3.8+
  • Docker
  • uv

Installation

  1. Clone the repository:

    git clone https://github.com/kevinkoech357/kemistry
  2. Navigate to the project and set it up:

    cd kemistry
    # Create virtualenv using uv
    uv venv
    source .venv/bin/activate
    # Install extensions
    uv pip install -r requirements.txt
    # Running tests
    pytest

Setting up Environment Variables

Create a .env file in the project directory and add the following variables:

SQLALCHEMY_DATABASE_URI=
SECRET_KEY=
SECURITY_PASSWORD_SALT=
SECURITY_TOTP_SECRETS=
MAIL_SERVER=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_DEFAULT_SENDER=
ADMIN_EMAIL=
ADMIN_PASSWORD=
ADMIN_USERNAME=

Building Docker Image

You can also build a Docker image to run Kemistry:

Ensure Docker is installed on your machine.

# Build Image
docker build -t kemistry .

Run the App on Localhost

To run the app on your local machine, follow these steps:

Ensure you are in the project directory.

Run the app:

python run.py
or
gunicorn -c gunicorn_config.py run:app

Or, if you prefer Docker:

docker run -p 8007:8007 --env-file .env kemistry

This will run the Kemistry app inside a Docker container.

Usage

Once the app is running, you can access it by navigating to http://localhost:8000 0r http://localhost:8007 in your web browser. From there, you can create posts on various branches of chemistry and engage with other users through comments.

Enjoy using Kemistry!

PS: DB Schema Screenshot from 2024-04-05 10-39-39

About

A blog web app solely built for chemists with 2-Factor Authentication enabled. Uses Jenkins for devsecops, GitHub Actions to automate git pulling, docker image build, tagging and pushing and Docker for containerizing the app, jenkins, SonarQube and portainer.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published