diff --git a/README.md b/README.md new file mode 100644 index 0000000..3659122 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +# RideAware Admin Center + +This project provides an Admin Center for managing the RideAware subscriber list. It connects to the same SQLite database (`subscribers.db`) used by the landing page app (running on port 5000) and allows an administrator to: + +- View all currently subscribed email addresses. +- Send overview update emails to all subscribers. +- Unsubscribe emails via the landing page app. + +The Admin Center is protected by a login page, and admin credentials (with a salted/hashed password) are stored in the `admin_users` table within the same database. + +## Features + +- **Admin Login:** + Secure login using salted and hashed passwords (via Werkzeug security utilities). + +- **Subscriber List:** + View all email addresses currently stored in the `subscribers` table. + +- **Email Updates:** + A form for sending update emails (HTML allowed) to the subscriber list using SMTP. + +- **Shared Database:** + Both the landing page app (port 5000) and Admin Center (port 5001) connect to the same `subscribers.db`. + +## Setup & Running + +### Prerequisites + +- Docker (for containerized deployment) +- Python 3.11+ (if running locally without Docker) +- An SMTP account (e.g., Spacemail) for sending emails +- A `.env` file with configuration details + +### .env Configuration + +Create a `.env` file in the project root with the following example variables: + +```env +# SMTP settings (shared with the landing page app) +SMTP_SERVER= +SMTP_PORT= +SMTP_USER= +SMTP_PASSWORD= + +# Database file +DATABASE_FILE=subscribers.db + +# Admin credentials for the Admin Center +ADMIN_USERNAME=admin +ADMIN_PASSWORD="changeme" # Change this to a secure password +ADMIN_SECRET_KEY="your_super_secret_key" +``` + +### Running with Docker + +Building the Docker image: +```sh +docker build -t admin-panel . +``` + +Running the container mapping port 5001: +```sh +docker run -p 5001:5001 admin-panel +``` + +The app will be accessible at http://ip-address-here:5001 + +### Running locally +Install the dependencies using **requirements.txt**: + +```sh +pip install -r requirements.txt +``` + +Then run the admin app: +```sh +python app.py +``` + +The app will be accessible at http://ip-address-here:5001 \ No newline at end of file