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.
- Required to Run
- Installation
- Setting up Environment Variables
- Building Docker Image
- Run the App on Localhost
- Usage
Before running Kemistry, ensure you have the following prerequisites installed:
- Python 3.8+
- Docker
- uv
-
Clone the repository:
git clone https://github.com/kevinkoech357/kemistry
-
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
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=
You can also build a Docker image to run Kemistry:
Ensure Docker is installed on your machine.
# Build Image
docker build -t kemistry .
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.
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!