| Student Number | Name | GitHub Username |
|---|---|---|
| 24273132 | Charlee Thornett | thornch-12 |
| 23585984 | Tasveer Mann | tassiemann123 |
| 24314441 | Dylan Hu | Vylan66 |
| 24618514 | Jieh Shuen Chia (Jason) | Jason-CJS |
TimePocket is a shared scheduling web application that helps groups of friends and colleagues find common free time. Users can add their weekly availability, connect with friends, create groups, and view a heatmap of when everyone is free — making it easy to plan meetings, hangouts, and events without the back-and-forth.
Prerequisites
- Python 3.12+
- pip
- Google Chrome (for Selenium tests)
Setup
- Clone the repository:
git clone https://github.com/Vylan66/TimePocket.git
cd TimePocket
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
- Install dependencies:
pip install -r requirements.txt
- (Optional) Create a
.envfile in the root directory for email functionality:
SECRET_KEY=timepocket-secret-2026
MAIL_USERNAME=your-gmail@gmail.com
MAIL_PASSWORD=your-gmail-app-password
To enable email verification for new signups, a Gmail account with an App Password is required. See Google App Passwords. This step can be skipped if using demo accounts below.
- Run database migrations:
flask db upgrade
- Seed demo data:
flask seed-demo
flask seed-interests
- Launch the app:
flask run
or
python run.py
- Open your browser and go to
http://127.0.0.1:5000
Demo Accounts
| Password | |
|---|---|
| alice@demo.com | password123 |
| bob@demo.com | password123 |
| charlie@demo.com | password123 |
| diana@demo.com | password123 |
Demo accounts bypass email verification. Use these to explore the full app without any email setup.
Unit Tests
Run from the root directory:
python -m pytest tests/test_auth.py tests/test_routes.py -v
Selenium Tests
Selenium tests require the app to be running first.
- In one terminal, start the app and seed demo data:
flask db upgrade
flask seed-demo
flask seed-interests
flask run
- In a second terminal, run the selenium tests:
python -m pytest tests/test_selenium.py -v
Note: Selenium tests require Google Chrome to be installed. ChromeDriver is installed automatically via webdriver-manager.