{"id":16039388,"url":"https://github.com/erikboesen/yaleartsvisualizer","last_synced_at":"2026-02-12T20:32:26.463Z","repository":{"id":193418480,"uuid":"688584720","full_name":"ErikBoesen/YaleArtsVisualizer","owner":"ErikBoesen","description":"Project for the class Software Engineering (CPSC439) at Yale University.","archived":false,"fork":false,"pushed_at":"2024-08-06T17:20:16.000Z","size":5571,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-13T14:08:12.006Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/ErikBoesen.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}},"created_at":"2023-09-07T16:50:11.000Z","updated_at":"2024-12-23T17:14:42.000Z","dependencies_parsed_at":"2023-09-08T04:55:42.689Z","dependency_job_id":"69b0aedb-bc3f-44c6-8d0b-dc8fb5ca3ac1","html_url":"https://github.com/ErikBoesen/YaleArtsVisualizer","commit_stats":null,"previous_names":["erikboesen/yaleartsvisualizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ErikBoesen/YaleArtsVisualizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErikBoesen%2FYaleArtsVisualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErikBoesen%2FYaleArtsVisualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErikBoesen%2FYaleArtsVisualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErikBoesen%2FYaleArtsVisualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ErikBoesen","download_url":"https://codeload.github.com/ErikBoesen/YaleArtsVisualizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErikBoesen%2FYaleArtsVisualizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29380604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T19:05:20.189Z","status":"ssl_error","status_checked_at":"2026-02-12T19:01:44.216Z","response_time":55,"last_error":"SSL_read: 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":[],"created_at":"2024-10-08T23:03:45.920Z","updated_at":"2026-02-12T20:32:26.442Z","avatar_url":"https://github.com/ErikBoesen.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/yale-swe/f23-yale-arts-map/assets/30581915/86ed8443-2e66-4e7a-ad02-f08a639808e3\" width=\"400px\"/\u003e\n  \u003cbr/\u003e\n  Yale Arts Map\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\nA graph exploration of the who and what in the Yale Arts scene.\u003cbr/\u003eIncluding, but not limited to, the YDN, Performing Arts, Yale SoA, School of Arch.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[Tech Stack](#tech-stack) •\n[Development](#development) •\n[Configuration](#configuration)\n\n\u003c/div\u003e\n\n## Tech Stack\n\nYale Arts Map is a website centered around a force-directed graph representing the relationships of productions and people on campus. Its functionality is centered around this \"graph\", which persists and evolves naturally across navigation. Each page thus provides information and manipulates the graph around a different filterable \"view\" of the scraped database.\n\n| Stack | Tooling |  Dir |\n| --- | --- | --- |\n| **Frontend** | Next.js 14 (TypeScript, appDir) using Jotai, SWR, and d3-force | `frontend/` |\n| **Backend (Client)** | Serverless Next.js API Handlers using Prisma | `frontend/src/app/api/` |\n| **Backend (Scraper)** | Serverless Python AWS Lambda functions using a shared Prisma Lambda Layer | `backend/` |\n| **Database** | PlanetScale MySQL and Prisma Data Proxy for pooling serverless connections | `frontend/prisma/` |\n| **Infrastructure** | All backend resources codified with Terraform | `tf/` |\n\nA preview of our interface:\n\n\u003cdiv align=\"center\" style=\"display: flex; flex-direction: row; justify-content: space-between; align-items: center; width: 100%;\"\u003e\n\u003cimg width=\"48%\" alt=\"image\" src=\"https://github.com/yale-swe/f23-yale-arts-map/assets/30581915/d80dc4c6-4461-41c1-8122-09e73e20ce46\"\u003e\n\u003cimg width=\"48%\" alt=\"image\" src=\"https://github.com/yale-swe/f23-yale-arts-map/assets/30581915/b8ee8a96-e3a7-401a-93b0-ec1398fae8cd\"\u003e\n\u003c/div\u003e\n\n## Setup\n\nWe use `pre-commit` to perform some Terraform formatting and docs generation. To\ninstall the tools, run the following (assuming you're on Mac with homebrew):\n\n```bash\n# Install depenedencies for Terraform linting / doc gen\n$ brew install pre-commit terraform-docs tflint tfsec checkov terrascan infracost tfupdate minamijoyo/hcledit/hcledit jq\n# Configure Terraform docs templating\n$ DIR=~/.git-template\n$ git config --global init.templateDir ${DIR}\n$ pre-commit init-templatedir -t pre-commit ${DIR}\n# Install + run pre-commit on all files\n$ pre-commit install\n$ pre-commit run --all-files\n```\n\nMost of use use VSCode for development. A recommended list of extensions can be found in `.vscode/extensions.json`.\n\n## Development\n\n### Frontend\n\nTo develop locally...\n\n```bash\n# Enter the frontend\n$ cd YaleArtsVisualizer/frontend/\n# Install dependencies and begin the local web server\n$ yarn\n$ yarn dev\n```\n\n\u003e **Note**\n\u003e You will need to fill out a `.env.local` file in the `frontend/` directory as described in the [Configuration](#configuration) section to be able to connect to the development backend from your local environment. However, if you are deploying your own `sandbox` environment, the correct `.env.local` file will be auto-generated for you upon applying your Terraform plan.\n\n## Configuration\n\nThe client app expects the following environment variables to be set in order\nto communicate with the backend. Their corresponding locations from the Terraform\nsetup have been provided, but you should replace these after being given a valid\ndevelopment .env file by a member of the team.\n\n```ini\n# frontend/.env.local\nDATABASE_URL=\u003cthe database URL with API key of the Prisma data proxy\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikboesen%2Fyaleartsvisualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferikboesen%2Fyaleartsvisualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikboesen%2Fyaleartsvisualizer/lists"}