{"id":18545443,"url":"https://github.com/ac-i2i-engineering/access-amherst","last_synced_at":"2025-05-15T06:10:58.757Z","repository":{"id":257847267,"uuid":"861391160","full_name":"ac-i2i-engineering/access-amherst","owner":"ac-i2i-engineering","description":"An web app to connect Amherst College students to events in a more convenient, intimate, and diverse way! https://amherst-connect.com/","archived":false,"fork":false,"pushed_at":"2025-05-10T01:52:17.000Z","size":12223,"stargazers_count":1,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-10T02:43:15.775Z","etag":null,"topics":["cron-jobs","css3","django-project","github-actions","github-pages","html5","pytest","python3","scikitlearn-machine-learning","scraping-websites","sphinx-documentation"],"latest_commit_sha":null,"homepage":"https://ac-i2i-engineering.github.io/access-amherst/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ac-i2i-engineering.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-09-22T19:05:34.000Z","updated_at":"2025-05-10T01:52:21.000Z","dependencies_parsed_at":"2024-10-25T20:47:49.581Z","dependency_job_id":"1a592fb2-4add-4a46-a0e7-7fc1602fb653","html_url":"https://github.com/ac-i2i-engineering/access-amherst","commit_stats":null,"previous_names":["ac-i2i-engineering/access-amherst"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Faccess-amherst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Faccess-amherst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Faccess-amherst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ac-i2i-engineering%2Faccess-amherst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ac-i2i-engineering","download_url":"https://codeload.github.com/ac-i2i-engineering/access-amherst/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254283350,"owners_count":22045141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cron-jobs","css3","django-project","github-actions","github-pages","html5","pytest","python3","scikitlearn-machine-learning","scraping-websites","sphinx-documentation"],"created_at":"2024-11-06T20:20:14.952Z","updated_at":"2025-05-15T06:10:58.733Z","avatar_url":"https://github.com/ac-i2i-engineering.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Access Amherst - Centralized Event Hub\n\n[![Pytest + CI/CD](https://github.com/ac-i2i-engineering/access-amherst/actions/workflows/django.yml/badge.svg)](https://github.com/ac-i2i-engineering/access-amherst/actions/workflows/django.yml) ![Docs](https://github.com/ac-i2i-engineering/access-amherst/actions/workflows/sphinx.yml/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/ac-i2i-engineering/access-amherst/badge.png)](https://coveralls.io/github/ac-i2i-engineering/access-amherst) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![pages-build-deployment](https://github.com/ac-i2i-engineering/access-amherst/actions/workflows/pages/pages-build-deployment/badge.svg?branch=gh-pages)](https://github.com/ac-i2i-engineering/access-amherst/actions/workflows/pages/pages-build-deployment) [![Documentation Status](https://readthedocs.org/projects/access-amherst/badge/?version=latest)](https://access-amherst.readthedocs.io/en/latest/?badge=latest)\n\nAccess Amherst is a web application created to connect Amherst College students through organized, accessible, and diverse event updates on campus. The platform provides real-time information on campus events, allowing students to plan their schedules effectively. \n\n## Key Features\n- **Organized Event Updates:** Receive updates on the latest campus events in a streamlined format.\n- **Interactive Event Map:** View real-time events displayed on campus buildings.\n- **Comprehensive Event Calendar:** Get a big-picture view of upcoming events to manage your time effectively.\n- **Additional Features:** Many more features to enhance campus engagement.\n\n## Getting Started\n\nTo clone and set up the application locally, follow the instructions below.\n\n### Clone the Repository\n\n```bash\ngit clone https://github.com/ac-i2i-engineering/access-amherst.git\ncd access-amherst\n```\n\n### Set Up a Virtual Environment\n\nCreate and activate a virtual environment to manage dependencies locally.\n\n```bash\npython3 -m venv env\nsource env/bin/activate\n```\n\n### Install Dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### Run Database Migrations\n\nNavigate to the backend directory and apply migrations to set up the database schema.\n\n```bash\ncd access_amherst_backend\npython manage.py makemigrations\npython manage.py migrate\n```\n\n### Start the Development Server\n\nTo run the application locally, use the following command:\n\n```bash\npython manage.py runserver\n```\n\nVisit `http://127.0.0.1:8000/` in your browser to view the application.\n\n## System Architecture \u0026 Design\n\nAccess Amherst is designed with a modular, scalable architecture. Below is a high-level architecture diagram illustrating the core components and their interactions.\n\n![Access Amherst System Architecture](./img/system_design.png)\n\n### Architecture Components\n\n- **EventDB**: The central database storing event information accessible to multiple front-end modules.\n- **Home**: Displays the latest events and announcements.\n- **Dashboard**: Provides analytical insights into campus events.\n- **Map**: A geographic interface to see real-time event locations on campus.\n- **Daily Mammoth**: An integration with the campus email system for event notifications.\n- **The Hub**: Search and discovery interface for all campus events.\n\n### Functional Design\n\nThe following diagram provides a detailed breakdown of the application’s internal components and workflows.\n\n```mermaid\ngraph TD\n    subgraph redis [\"Redis for Scheduling Tasks\"]\n        F1[Schedule periodic tasks]\n        F1 --\u003e F2[Execute tasks with Celery]\n    end\n\n    subgraph email_scraper [\"Email Scraper\"]\n        F2 --\u003e A1[Fetch Gmail messages]\n        A1 --\u003e A2[Extract event details with Llama 3.1]\n        A2 --\u003e A3[Clean data]\n    end\n\n    subgraph rss_scraper [\"RSS Scraper\"]\n        F2 --\u003e B1[Fetch RSS feed]\n        B1 --\u003e B2[Save as XML]\n        B2 --\u003e B3[Clean data]\n    end\n\n    subgraph database [\"Database Operations\"]\n        A3 --\u003e C1[\"Save as JSON (for debugging)\"]\n        B3 --\u003e C1\n        C1 --\u003e C2[Check for duplicate events]\n        C2 --\u003e C3[Save events to database]\n    end\n\n    subgraph backend [\"Backend Logic\"]\n        C3 --\u003e D1[Retrieve events]\n    end\n\n    subgraph frontend [\"Frontend Logic\"]\n        D1 --\u003e E1[Display events on homepage]\n        D1 --\u003e E2[Show events on map page]\n        D1 --\u003e E3[Generate dashboard visualizations]\n    end\n```\n\n## Contributing\n\nWe welcome contributions to improve Access Amherst. Please follow these guidelines:\n\n1. **Code Formatting**: Ensure your code adheres to the `black` style guidelines. You can format your code by running:\n   ```bash\n   python -m black ./\n   ```\n   A pre-commit hook is set up to enforce this format.\n\n2. **Documentation**: For adding or updating documentation, please refer to the [Access Amherst Backend Documentation Guide](./docs/) in `docs/`. It includes instructions on using Sphinx to document models and views, creating `.rst` files, and previewing the documentation.\n\n3. **Pull Requests**: Before submitting a pull request, ensure that all code is well-documented, tested, and follows our coding standards.\n\n---\n\nFor any questions or further support, please reach out to our team.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fac-i2i-engineering%2Faccess-amherst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fac-i2i-engineering%2Faccess-amherst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fac-i2i-engineering%2Faccess-amherst/lists"}