{"id":28317764,"url":"https://github.com/aaronjai/cits3403_project","last_synced_at":"2026-05-05T23:31:05.252Z","repository":{"id":293508639,"uuid":"959603033","full_name":"AaronJai/CITS3403_PROJECT","owner":"AaronJai","description":"Agile Web Development University Project - Environmental Impact Tracker","archived":false,"fork":false,"pushed_at":"2025-05-16T08:11:09.000Z","size":13437,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-24T15:44:12.580Z","etag":null,"topics":["flask","flask-migrate","flask-sqlalchemy","flask-wtforms","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AaronJai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-03T03:53:22.000Z","updated_at":"2025-05-16T08:11:13.000Z","dependencies_parsed_at":"2025-06-24T15:48:31.774Z","dependency_job_id":null,"html_url":"https://github.com/AaronJai/CITS3403_PROJECT","commit_stats":null,"previous_names":["aaronjai/cits3403_project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AaronJai/CITS3403_PROJECT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AaronJai%2FCITS3403_PROJECT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AaronJai%2FCITS3403_PROJECT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AaronJai%2FCITS3403_PROJECT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AaronJai%2FCITS3403_PROJECT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AaronJai","download_url":"https://codeload.github.com/AaronJai/CITS3403_PROJECT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AaronJai%2FCITS3403_PROJECT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32672492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","flask-migrate","flask-sqlalchemy","flask-wtforms","tailwindcss"],"created_at":"2025-05-25T06:12:39.993Z","updated_at":"2026-05-05T23:31:05.231Z","avatar_url":"https://github.com/AaronJai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CITS3403 Project: EcoTrack\n\n## Description\n\nEcoTrack is an environmental impact tracker that allows users to monitor, analyse, and reduce their carbon footprint. Users can log their activities across categories such as energy consumption, transportation, food, and shopping. The app calculates a personalised snapshot of their emissions, compares them to national averages, and visualises progress toward sustainability goals. EcoTrack provides actionable insights, tailored suggestions, and live environmental news to help users make informed, eco-friendly choices and track their journey toward a lower-impact lifestyle.\n\n## Tech Stack\n- HTML\n- CSS\n- JavaScript\n- TailwindCSS\n- JQuery\n- Flask\n- AJAX/Websockets\n- SQLite interfaced to via the SQLAlchemy package\n\n## Members\n\n| UWA ID   | Name             | GitHub Username                               |\n| -------- | ---------------- | --------------------------------------------- |\n| 23861827 | Mei Lin Ke       | [MeiLin99999, Linda](https://github.com/MeiLin99999) |\n| 23683717 | Salman Nikakhter | [samlam691](https://github.com/samlam691)     |\n| 23074324 | Hazel Wang       | [useri4l](https://github.com/useri4l)         |\n| 22884212 | Aaron Tan        | [AaronJai](https://github.com/AaronJai)       |\n\n## Setup Instructions\n\nFollow these steps to set up the EcoTrack application:\n\n1. **Clone the repository:**\n   ```\n   git clone \u003crepository-url\u003e\n   cd CITS3403_PROJECT\n   ```\n\n2. **Create and activate a virtual environment:**\n   ```\n   # Windows\n   python -m venv .venv\n   .venv\\Scripts\\activate\n   \n   # Mac/Linux\n   python3 -m venv .venv\n   source .venv/bin/activate\n   ```\n\n3. **Install dependencies:**\n   ```\n   pip install -r requirements.txt\n   ```\n   - _Note: You may need to use ```pip3``` or a different command depending on how Python is installed on your system._\n\n4. **Configure Environment variables**\n   \n   Set up a new file named ```.env``` in the root directory of the project and add the following content:\n   ```bash\n   FLASK_SECRET_KEY=\u003cyour_key\u003e # important\n\n   MAIL_SERVER=smtp.example.com # important\n   MAIL_PORT=587\n   MAIL_USE_TLS=true\n   MAIL_USERNAME=\u003cyour_email\u003e # important\n   MAIL_PASSWORD=\u003cyour_app_password\u003e # important\n   MAIL_DEFAULT_SENDER=EcoTrack \u003cnoreply@ecotrack.com\u003e\n   ```\n   \n   For security, you can create an \"App Password\" with your mail provider rather than using your real password.\n\n   After succesful setup, your ```.env``` file may look like:\n   ```bash\n   FLASK_SECRET_KEY=i_love_matcha\n\n   MAIL_SERVER=smtp.gmail.com\n   MAIL_PORT=587\n   MAIL_USE_TLS=true\n   MAIL_USERNAME=test.example1@gmail.com\n   MAIL_PASSWORD=abcd efgh hijk lmno\n   MAIL_DEFAULT_SENDER=EcoTrack \u003cnoreply@ecotrack.com\u003e\n   ```\n\n   Useful links for information on setting up app passwords:\n   - [Gmail](https://support.google.com/accounts/answer/185833?hl=en)\n   - [Outlook](https://support.microsoft.com/en-au/account-billing/how-to-get-and-use-app-passwords-5896ed9b-4263-e681-128a-a6f2979a7944)\n   - [Yahoo](https://help.yahoo.com/kb/SLN15241.html?guccounter=1\u0026guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8\u0026guce_referrer_sig=AQAAACM6bF-WHqshDR69KZBDLQXCaURxkoojDvEOdpxqmLNu-VsfTnqC2d8In7b1vGPgnT_v_3-fEPBZ1ZSmboFUxD1K8g88dhKGp1vcoDlnPtWLzTKu9IkAOQ2dd6s802EEOEhZHSSwQxW7bcIWU5ycr3HeO5KsT7WqYJiLHFHgzEN6)\n   - [Apple](https://support.apple.com/en-au/102654)\n\n5. **Initialise the database:**\n   ```\n   flask db upgrade\n   ```\n\n6. **Run the application:**\n   ```\n   flask run\n   or, to open in debug mode:\n   python EcoTrack.py\n   ```\n   - _Note: You may need to use ```python3``` or a different command depending on how Python is installed on your system._\n\n7. **Access the application:**\n   Open a web browser and go to `http://127.0.0.1:5000/`\n\n## Testing (from root directory)\n```bash\n# Unittest\npython -m unittest tests/unit.py\n\n# Selenium\npython -m unittest tests.test_selenium\n```\n- You can add '-v' to the end for verbose outputs.\n- For more detail on testing please see the ```README.md``` in the ```tests``` folder. Link [here](tests/README.md)\n\n## Database Management\n\nIf you need to make changes to the database models:\n\n1. Update the models in `app/models.py`\n2. Run migrations:\n   ```\n   flask db migrate -m \"Description of changes\"\n   flask db upgrade\n   ```\n\nTo check database version history:\n```\nflask db history\n```\n\nTo downgrade to a previous version:\n```\nflask db downgrade\n```\n\n## Styling - TailwindCSS\n\n1. Install Tailwind CSS\n\n```bash\nnpm install tailwindcss @tailwindcss/cli\n```\n\n2. Run the CLI tool to scan your source files for classes and build your CSS.\n\n```bash\nnpx @tailwindcss/cli -i ./app/static/css/styles.css -o ./app/static/css/output.css --watch\n```\n\n- we ADD our classes to `styles.css`, but we link the `output.css` stylesheet\n- CLI automatically rebuilds `output.css` whenever we add styles to `styles.css` (happens because of the --watch flag)\n- if you accidentally cancel or close it, just re-run it\n\nIn case you get Permission denied on Mac, run:\n\n```bash\nchmod +x ./node_modules/.bin/tailwindcss\n```\n\n**Note:** For development, it is recommended to have two terminals open:\n\n1. One for running the Flask server.\n2. One for running the Tailwind CLI.\n\n\n## Development\n\n- The application uses SQLite for development\n- Database file is stored in `app/app.db`\n- Use `flask shell` to interact directly with the database\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronjai%2Fcits3403_project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronjai%2Fcits3403_project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronjai%2Fcits3403_project/lists"}