Git Product home page Git Product logo

kevinkoech357 / kemistry Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 3.68 MB

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: MIT License

Python 48.87% Mako 0.35% SCSS 1.45% HTML 48.28% Dockerfile 1.05%
docker flask flask-security-too flask-sqlalchemy gunicorn jenkins nginx supabase-db ubuntu 2-factor-authentication

kemistry's Introduction

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

kemistry's People

Contributors

kevinkoech357 avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar

kemistry's Issues

Playground

Enable users to play 2-games in the playground section.

Profile page

Render the user information, also add a suspend and/or delete account.

Blog page

Create a simple responsive blog page to display post, author, date and comments when clicked.

Followers

Enable users to follow each other.

Post

Enable users to create, read, update and delete posts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.