Source code for the Beeja Botanicals website [WIP] https://new.beejabotanicals.in
  • Python 53.9%
  • HTML 42.5%
  • CSS 3.5%
  • JavaScript 0.1%
Find a file
2026-03-08 13:03:04 +05:30
beeja Set up payments with Razorpay 2025-11-04 19:05:34 +05:30
home Force "Shop Now" button to be white even in dark mode 2026-03-08 12:26:00 +05:30
shop Display fallback for payment when JavaScript disabled 2026-03-08 13:03:04 +05:30
theme Remove large Beeja logo from navbar 2026-03-08 12:23:07 +05:30
.env.example Set up payments with Razorpay 2025-11-04 19:05:34 +05:30
.gitignore Limit env, media, and static gitignores to top-level 2026-03-08 12:06:03 +05:30
LICENSE.md
manage.py
Procfile.tailwind
README.md Set default font to Montserrat 2026-03-08 12:07:05 +05:30
requirements.txt Set up payments with Razorpay 2025-11-04 19:05:34 +05:30

Beeja Botanicals

This is the ecommerce website for Beeja Botanicals, although the plan is to eventually make reusable and customisable Django apps that can be used for other small ecommerce setups too.

Development quickstart

1. Set up a virtual environment:

The following commands create a new virtual environment in the folder env and installs dependencies

python -m venv ./env
source ./env/bin/activate
python -m pip install -r ./requirements.txt

Once this is set up, remember to run the second command (source ./env/bin/activate) every time you start a new shell to work on the project again.

2. Set up environment variables

Environment variables are stored in .env (not to be confused with the Python virtual environment from the previous step). You can copy and customise the contents of .env.example. Crucially, remember to set a strong SECRET_KEY if you are deploying to production!

3 Setup Tailwind

The following commands install NodeJS dependencies for TailwindCSS

./manage.py tailwind install

4. Run all the pending migrations

This will create the relevant tables in the database

./manage.py migrate

5. Load initial data

The following command will load initial data into the database (currently the list of Indian states, for delivery).

./manage.py loaddata states

Note that this command will clear existing records from the database, so it should only be run once: right at the beginning

6. Run the development server

./manage.py tailwind dev

We use this command instead of ./manage.py runserver because it also takes care of compiling tailwind stylesheets (and even has auto-reload!).

Production slowend

0. Read the official Django deployment checklist

These are detailed instructions that you should be familiar with before you attempt to deploy anything in production! You can find the official documentation here.

This project makes it easier by using django-environ, which means a lot of the things are already taken care of by the .env file. Needless to say, this file should be different in production than in the development version.

1. Remove Beeja Botanicals related branding

The contents of theme/static/img are the property of Beeja Botanicals, LLP. Before you publish a website using this code, you should remove or replace those images.

In future, the codebase will be updated to use configurable generic branding and images so you won't have to repeat this step every time.

2. Redo the development setup

Follow steps 1 through 3 from the previous section. (You can skip step 4, since you don't want to run the development server.)

3. Build and collect static assets

The following command complies the final Tailwind stylesheet for serving

./manage.py tailwind build

After this, you should also the in-built Django command to collect other static files:

./manage.py collectstatic

4. Configure your webserver

You can a runner likegunicorn and configure your web server to redirect requests to it.

Make sure you server serves the contents of /static/ and /media/ directly without passing them through Django.

5. On every update

You might want to set up a git hook to run the following (from within the virtual environment of course):

./manage.py migrate
./manage.py tailwind build
./manage.py collectstatic

License

Copyright (C) 2025 Badri Sunderarajan

The program contained in this repository is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version, with the following exceptions:

  1. "Beeja Botanicals" and the Beeja Botanicals logos are registered trademarks of Beeja Botanicals, LLP. Usage of these trademarks without explicit written permission from the owner is prohibited.
  2. Beeja Botanicals, LLP reserves the right to images contained in the theme/static/img directory and its subdirectories.
  3. The Montserrat font bundled in this repo is available under the SIL Open Font Licence.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License in the LICENSE.md file along with this program. If not, see http://www.gnu.org/licenses/.

In future, the codebase will be updated to use configurable generic branding and images.

Credits

This project makes use of the following Free Software projects:

  • Django, the web framework for perfectionists with deadlines
  • django-environ for easy loading of environment variables
  • Feather, simply beautiful open source icons (with Django integration thanks to django-feather)
  • Tailwind CSS, rapidly build modern websites without ever leaving your HTML (integrated with Django courtesy django-tailwind)
  • daisyUI Tailwind CSS component library
  • Python-Markdown, a Python implementation of John Gruber's Markdown specification
  • Pillow, the friendly Python Imaging Library (PIL) fork
  • Montserrat, a geometric sans-serif typeface desgined by Julieta Ulanovsky