Full-stack medicinal plant inventory web app where guests and an admin can manage plants based on stock and useage.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
To get a local copy up and running, follow these steps.
- Node.js (recommended v22+)
- npm
- Neon account (free tier works)
- Clone the repository
git clone https://github.com/MK-DlR/inventory-app.git cd inventory-app - Install dependencies
npm install
- Create a Neon database
- Sign up for a free account at https://neon.tech
- Create a new project
- Open the project dashboard and copy the PostgreSQL connection string
- The connection string should look similar to:
postgresql://username:password@host/database?sslmode=require
- Set up environment variables
Open
cp .env.example .env
.envand fill in:DATABASE_URL(from Neon)SESSION_SECRETADMIN_PASSWORDTREFLE_API_KEY(optional)
- Set up the database
This will create all tables and seed the database with a guest account, admin account, and sample plant data.
npm run setup
Only run this once on a fresh install — it will wipe any existing data. - Start the application
npm run dev
- Open the app at
http://localhost:3005
- Backend: Express + PostgreSQL
- Frontend: EJS
- Database: Neon (cloud PostgreSQL)
- Authentication: Session-based
- Trefle API is optional — the app works without it, but plant image fetching will be unavailable
- Default seed includes a guest account and admin account, plus sample plant data
This is an Express based medicinal plant inventory management application where users can maintain their stock of plants along with any medicinal uses they may have.
The application allows filtering, sorting, and searching and includes a pre-seeded database with an admin account for actual stock management.
- Open the app at http://localhost:3005 or visit the live demo
- CRUD plants and medicinal uses on the live demo
- Create new plants for the Trefle API to fetch images for
- Alternatively, set up and run a copy locally to CRUD plants as an admin
- Search by plant name, filter by medicinal use and/or stock, quantity, and order status, and sort by various options
- Default plants and medicinal uses are created automatically via the setup script
- An admin account is created for management of plants separately from guest (logged out) view plants
- Admin and guest plants are managed separately, allowing guests to demo the functionality without damaging any in-use data
- Add LICENSE.txt
- Admin account
- Guest account
- Login page
- Upgrade CSS
- Add live demo link
- User supplied images
- Bug: API giving unrelated images
See the open issues for a full list of proposed features (and known issues).
As this is a student project created for The Odin Project curriculum, it is currently not open for contributions.
Distributed under the MIT License. See LICENSE.txt for more information.
Adrien Newman - @MK_DlR - adriennewman92@gmail.com
Project Link: Repository & Live Demo

