{"id":21000477,"url":"https://github.com/brileighk/tech-catalyst","last_synced_at":"2026-02-02T22:45:22.600Z","repository":{"id":252309273,"uuid":"831620475","full_name":"BriLeighk/Tech-Catalyst","owner":"BriLeighk","description":"Track A, Headstarter Fellowship - The Tech Catalyst, aiming to empower CS Students with tools, opportunities, and connections to excel in the tech industry.","archived":false,"fork":false,"pushed_at":"2024-09-22T21:11:43.000Z","size":27220,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-14T23:36:44.447Z","etag":null,"topics":["clearbit-logo-api","cloud-firestore","daisyui","firebase-auth","firebase-storage","gemini-api","github-api","google-calendar-api","google-safe-browsing-api","google-vision-api","headstarter-fellowship","indeedapi","nextjs","reactjs","sightengine","socket-io","software-engineering","tailwindcss","web-scraping","websockets"],"latest_commit_sha":null,"homepage":"https://www.thetechcatalyst.org/","language":"JavaScript","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/BriLeighk.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":"2024-07-21T05:48:19.000Z","updated_at":"2024-09-22T19:38:50.000Z","dependencies_parsed_at":"2024-08-27T02:02:09.413Z","dependency_job_id":"e34af928-254b-4199-b18c-12f03d456edd","html_url":"https://github.com/BriLeighk/Tech-Catalyst","commit_stats":null,"previous_names":["brileighk/headstarter","brileighk/tech-catalyst"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BriLeighk/Tech-Catalyst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FTech-Catalyst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FTech-Catalyst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FTech-Catalyst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FTech-Catalyst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BriLeighk","download_url":"https://codeload.github.com/BriLeighk/Tech-Catalyst/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BriLeighk%2FTech-Catalyst/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263421918,"owners_count":23464048,"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":["clearbit-logo-api","cloud-firestore","daisyui","firebase-auth","firebase-storage","gemini-api","github-api","google-calendar-api","google-safe-browsing-api","google-vision-api","headstarter-fellowship","indeedapi","nextjs","reactjs","sightengine","socket-io","software-engineering","tailwindcss","web-scraping","websockets"],"created_at":"2024-11-19T08:10:57.557Z","updated_at":"2026-02-02T22:45:22.558Z","avatar_url":"https://github.com/BriLeighk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [The Tech Catalyst](https://www.thetechcatalyst.org/)\nTech Catalyst is an all-in-one resource platform designed to help undergrads and recent graduates break \ninto the tech industry. We provide essential resources like resume templates, skill-building roadmaps, \ncourses, and job listings, empowering you to navigate the tech landscape and land your dream role.\n\n## [Wireframes](https://motiff.com/file/y4k6ssqksKGS0KbrOJI1w4L?nodeId=0%3A1\u0026type=design \"The Tech Catalyst - Wire Frames\")\nAll wireframes for the below task breakdown can be referenced [here](https://motiff.com/file/y4k6ssqksKGS0KbrOJI1w4L?nodeId=0%3A1\u0026type=design \"The Tech Catalyst - Wire Frames\").\n\n## Tech Stack\n- **Database**: Cloud Firestore\n- **Frontend**: React with Next.js, Tailwind CSS, and DaisyUI\n- **Messaging**: Socket.io\n- **Authentication**: Firebase Authentication\n- **Hosting**: Firebase Storage, Vercel\n- **APIs**: Google Safe Browsing API, Google LinkedIn Jobs API, Indeed API, GitHub API, SightEngine API, EventBrite API, Google Calendar API, Microsoft Graph API, \n\n## Task Breakdown\n\n### Homepage\n- [ ] **Feature Section**: add onHover or onClick modal popup to list all potential badges, awards, and highlights.\n- [x] Make height responsive on mobile (currently overflows white on narrow viewports)\n\n### User Engagement Features\n- [x] **[Founder's Emblem Badge](https://drive.google.com/file/d/1wBf-zc7_xSvjSmsfrD_MNcOlFlaPHUU6/view?usp=sharing):** Awarded to the first 100 users to join The Tech Catalyst, among the original architects of our hall of knowledge.\n- [x] **[Scribe's Mark Badge](https://drive.google.com/file/d/1y-aZNFNRigh_qmDMRl7qQy_rGljpF5s5/view?usp=sharing)**: Awarded for contributing the first approved resource to the community, the ink that builds the foundation of our archives.\n- [ ] **[Sage's Seal Badge](https://drive.google.com/file/d/19UaPqp0JXI0bUsIezigaQfv7mxb4oUjB/view?usp=sharing)**: Awarded for consistenly contributing top-quality resources to the resource library, earning the highest recognition among contributors.\n- [ ] **Illuminator Badge**: Awarded for providing feedback on new features during the testing phase.\n- [ ] **Alchemist's Bond Badge**: Granted for making first 5 connections through Swipe-to-Connect, the beginnings of blending your network, turning connections into valuable insights.\n- [ ] **Grand Alchemist Badge:** Granted after making 100 connections through Swipe-to-Connect, reflecting your ability to forge and sustain connections to transform your network into gold.\n- [ ] **Oracle's Insight Badge:** Achieved by attending five tech events and sharing key insights with the community, sharing foresight to help guide others through the halls of knowledge.\n- [ ] **Concordia Conqueror Badge:** Unlocked by successfully completing a project with a peer found through Swipe-to-Connect.\n- [ ] **Archivist's Quill Badge**: Awarded when you upload your first project, etching your contributions and documenting your work.\n- [ ] **Catalyst MVP Badge** (Most Valuable Peer): Earned through consistent activity and support in the community (making discussion forums, commenting, collaborating/messaging, engaging in features, etc.,)\n- [x] **[Technomancer's Glyph Badge](https://drive.google.com/file/d/1JyDdVgyomueSnemg5mz1qCadQZLsABNN/view?usp=sharing)**: Granted for mastering at least three tech stacks (similar to GitHubs Rainbow Lang Trophy), wielding arcane arts of technology with precision of expertise.\n- [ ] **Scholar's Crest Badge**: Achieved by completing your first skill-building roadmap, scholarly dedication of the renaissance thinkers.\n- [ ] **Seeker's Sigil Badge**: Unlocked after applying to 10 jobs through the job search tool, navigating the labyrinth of opportunities with relentless pursuit.\n- [ ] **Mnemosyne’s Grimoire Badge**: Create 20 sets of flashcards, or ace over 200 flashcards, mastering memory and sharpening scholarly prowess.\n- [ ] **Vanguard's Helm Badge**: Earned after participating in your first hackathon - _may require proof of participation._\n- [ ] **Sage of Solutions Badge**: Unlocked for asking an answering over 50 questions with the AI Tech Chatbot.\n- [ ] **Navigator's Compass Badge**: Earned through particing in your first tech event listed on our platform.\n- [x] **[Resume Artificer Badge](https://drive.google.com/file/d/1nCZlg2DR4J5g6IngmkuToYHEsioNql7a/view?usp=sharing)**: Earned by creating a standout resume with one of our featured templates.\n- [ ] **Trailblazer's Torch Badge**: Awarded for completing the first of one of our featured roadmaps or certifications.\n- [x] **[Eminent Scholar Badge](https://drive.google.com/file/d/1tobifi6okmo4OYWcg6Y5h9LH_sz2z3za/view?usp=sharing)**: exclusive access and privileges as an elite member of The Tech Catalyst community.\n\n### Flashcard Feature\n- [ ] **Resource Library**: add button that links to flashcard feature page (see [wireframe](https://motiff.com/file/y4k6ssqksKGS0KbrOJI1w4L?nodeId=0%3A1\u0026type=design \"The Tech Catalyst - Wire Frames\"))\n- [ ] **Flashcard Page**: Create page for flashcard feature, add routing to it from header component using project structure-based navigation.\n- [ ] Add option for user to specify how many flashcards the AI should generate (limit = ~50 flashcards _total_ on free tier, whether saved as collection/deleted or not).\n- [ ] onClick, if user isn't logged in, open popup prompting user to log in to access flashcard feature.\n- [ ] onClick, If user is logged in, on flashcard generation:\n     - [ ] If #flashcard requests === 0 or is less than #requests user is making, open popup blocking user from using flashcard feature.\n     - [ ] If enough flashcard requests remaining (or on paid plan), increment flashcard request counter and approve generation.\n- [ ] Add \"remaining requests {remaining requests}\" on top of page, set to infinity symbol if user is on paid plan.\n- [ ] Add button to save flashcards to collection.\n- [ ] **Collection Page**: Create collection page , add routing to it from header component (only shows if user is logged in)\n- [ ] Add edit button inside each collection, onClick - displays delete icon next to each flashcard.\n- [ ] Handle deletion of flashcards (do not update flashcard limit).\n- [ ] Add edit button to collections list, onClick - displays delete icons next to each collection.\n- [ ] Handle deletion of collections (do not update flashcard limit).\n\n### Roadmap Generation Feature\n- [ ] make list of pre-defined roadmaps (similar to https://roadmap.sh/)\n\n### Tech Chatbot Feature\n\n### Project Guidelines Generation Feature\n\n### Resource Library\n- [x] Create resource library page with link to it from header component.\n- [x] Add [Plus](https://heroicons.com/) icon with a form to upload resource link.\n- [ ] Set limit of 1 resource contribution a day on free plan (auto resets after 24hrs)\n- [ ] Set limit of 10 resource contributions a day on paid plan (auto resets after 24hrs)\n- [x] On submission of form:\n    - [x] Show popup if user is not logged in, cannot make contribution if not logged in.\n    - [ ] Show popup if user reached quota of allowed resource submissions.\n    - [ ] Add Loader while API checks are occurring.\n    - [x] Check if resource is a valid URL\n    - [x] Check if the resource is already in Cloud Firestore database\n    - [x] Check if URL is safe using Web Risk API (implement immediate ban, or 3 strikes with message to dispute strikes at support@thetechcatalyst.org)\n    - [ ] Check if URL is appropriate using [SightEngine](https://sightengine.com/docs/url-link-moderation) URL and Link Moderation API\n    - [ ] Check if URL is tech related (TBD how to implement)\n    - [x] Fetch and style resource title \u0026 company logo using metadata scraping, domain parsing, and Clearbit.\n    - [x] Add resource to Firestore in community_resources table, listing it in the resource library with Name, Company, Contributor (the current user), and Link as attributes.\n    - [ ] Increment # of contributions made by user:\n        - [ ] If 1 after incrementing: assign user FirstContribution badge if submission is successful.\n        - [ ] If milestone number after incrementing: assign TopContributor badge if submission is successful.\n        - [ ]  Display congratulations popup (with confetti animation) displaying corresponding badge.\n- [x] Implement pagination.\n- [ ] Implement API to scope internet and auto-add resources to cloud firestore in catalyst_resources table.\n- [ ] Add Categories sidebar with filtering method to filter resources (community uploaded or otherwise) into categories (templates, videos, websites, SWE, Web Dev, App Dev, Cyber, etc.,)\n- [ ] Add Job Board section with LinkedIn API, Indeed API, and parse GitHub repositories of job listings.\n\n### User Authentication\n- [ ] modify verification feature to delete old verification codes and links instead of setting them to false.\n- [ ] Check if email on registration is of a valid domain.\n\n### User Dashboard\n- [ ] Add section for favorited resources (separate tab)\n- [ ] Add cooldown for user read \u0026 write requests (prevent abuse - minimize future costs)\n- [ ] Modify profile deletion feature to remove image from database.\n- [ ] Add \"Delete Account\" button to delete account with confirmation modal on click.\n- [ ] Allow deleting, rearranging, \u0026 categorizing favorited resources.\n- [ ] Add search bar to \"Other Users\" section.\n- [ ] Add settings preference to display profile as public or private.\n- [ ] Add achievements/badge section.\n- [ ] Improve click \u0026 drag feature for projects in edit state (make responsive on mobile)\n- [ ] Create \"GitHub Achievements\" section, displayed only if GitHub state is set to true (user links their GitHub):\n     - [ ] List any badges/highlights/trophies and achievements earned through GitHub.\n     - [ ] Show list of the users' pinned repositories.\n- [ ] **Potential Additional Feature:** Create \"LeetCode Achievements\" section\n- [ ] Add + button next to each project for users to add skills (auto populates skills section)\n\n### Payments\n- [ ] Add payment policy page to prevent liability, add link to it in header component.\n- [ ] Set up checkout page with Stripe API for each payment plan (monthly, yearly, and lifetime).\n- [ ] Create _counter_ \u0026 _limit_ attributes for chatbot feature (limit set to ~10 message requests).\n- [ ] Create _counter_ \u0026 _limit_ attributes for flashcard feature (limit set to ~15 total generated flashcards).\n- [ ] When user payment is confirmed:\n     - [ ] Send confirmation email with receipt.\n     - [ ] Set limit to undefined (unlimited).\n     - [ ] Define start of payment plan to track auto-renewal.\n- [ ] Update preferences section in settings:\n     - [ ] Add “Cancel Plan” button if user is subscribed to a premium (non lifetime) plan.\n     - [ ] Add “Upgrade Plan” button if user is not subscribed to a plan.\n     - [ ] Add section to show, update, delete billing information (cannot delete billing information if on payment plan without having another billing record set up).\n     - [ ] Add section to show, modify, delete card information (same rule as above applies)\n     - [ ] Leave blank, or just display “Current Plan” if subscribed to lifetime plan\n\n### Calendar of Tech Events\n- [ ] Add [CalendarDays](https://heroicons.com/) icon in Header component (should open separate page0\n- [ ] Design calendar and integrate Eventbrite API to pull events from reputable sites (Google Calendar API, Microsoft Graph API, etc.,)\n- [ ] Create [PlusCircle](https://heroicons.com/) button with modal form onClick for users to add events to public calendar (auto check for duplicates in DB using above APIs)\n\n### Built-In Messaging System\n- [ ] Add [Envelope](https://heroicons.com/) and [EnvelopeOpen](https://heroicons.com/) (in notification state) to Header component\n- [ ] Create Inbox section in Dashboard (navigates to it on click of icon)\n- [ ] Create message thread components and containers for chats\n- [ ] Implement Websockets (Socket.io)\n\n### Swipe-to-Connect Feature\n- [ ] Cooldown of 5 connections a day on free tier.\n- [ ] Create list of languages, frameworks, UIs, DBMSs, etc., (for dashboard skills section)\n- [ ] Pass users skills into AI with above list, with prompt to list complimentary/supplimentary skills, use as criteria for finding matches.\n- [ ] List all users with a higher ratio of matching skills to other/complimentary skills as \"Similar\"\n- [ ] List all users with a higher ratio of compliemntary skills to matching/other skills as \"Complientary\"\n\n### Discussions\n- [ ] Add tab in header component that links to discussion forum page.\n- [ ] List all discussions, with search bar to search existing forums.\n- [ ] Add [Plus](https://heroicons.com/) icon to start discussion:\n     - [ ] Type of discussion:\n          - [ ] Tech Events: selecting this option prompts user to choose the event from a dropdown menu and write key insights of the event (with min character limit). Possibly require proof of attendance for regulation of content.\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrileighk%2Ftech-catalyst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrileighk%2Ftech-catalyst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrileighk%2Ftech-catalyst/lists"}