{"id":20734318,"url":"https://github.com/7codewizard/d4utreborn","last_synced_at":"2025-05-11T01:31:39.279Z","repository":{"id":247598066,"uuid":"820015334","full_name":"7CodeWizard/D4UTReborn","owner":"7CodeWizard","description":"D4UTreborn, Discord Server","archived":false,"fork":false,"pushed_at":"2024-09-06T22:04:43.000Z","size":24485,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-23T23:02:39.803Z","etag":null,"topics":["css","javascript","nodejs","react","typescript"],"latest_commit_sha":null,"homepage":"","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/7CodeWizard.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":"2024-06-25T16:17:25.000Z","updated_at":"2024-11-20T07:32:12.000Z","dependencies_parsed_at":"2024-11-17T05:29:49.318Z","dependency_job_id":"ec075ac1-c279-4d5e-a652-a4958f09af31","html_url":"https://github.com/7CodeWizard/D4UTReborn","commit_stats":null,"previous_names":["1120gaston/d4utreborn","7codewizard/d4utreborn"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7CodeWizard%2FD4UTReborn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7CodeWizard%2FD4UTReborn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7CodeWizard%2FD4UTReborn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7CodeWizard%2FD4UTReborn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/7CodeWizard","download_url":"https://codeload.github.com/7CodeWizard/D4UTReborn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253504537,"owners_count":21918825,"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":["css","javascript","nodejs","react","typescript"],"created_at":"2024-11-17T05:29:39.869Z","updated_at":"2025-05-11T01:31:36.059Z","avatar_url":"https://github.com/7CodeWizard.png","language":"JavaScript","readme":"D4UTReborn Project: Function Deep Dive\n=======================================\n\n1. File: package.json\n\n- Contains project metadata, dependencies, and scripts.\n- Scripts for building (`npm run start-dev`, `fetch-structure`)\n-----------------------\n\n2. File: tsconfig.json\n\n- TypeScript compiler configuration.\n- Specifies target JavaScript version, module system, output directory, and other compiler options.\n---------------------------\n\n3. File: public/index.html\n\n- Main HTML structure of the web application.\n- Links to CSS (styles.css) and JavaScript (main.js, navigation.js) files.\n-----------------------------\n\n4. File: public/welcome.html\n\n- Contains the welcome message displayed to the user when they first load the application.\n-------------------------------\n\n5. File: public/css/styles.css\n\n- Defines styles for the web application, including animations, layout, colors, fonts, and responsive design.\n-------------------------------------\n\n6. File: public/js/affixSelection.js\n\n- Function: populateAffixSelection(affixes)\n  - Populates the affix selection UI with checkboxes for each affix.\n  - Clears previous affix elements and creates new ones based on the provided affixes.\n-----------------------------------\n\n7. File: public/js/buildManager.js\n\n- Function: saveBuild(selectedClass, selectedSkill, selectedItem, summaryContent)\n  - Prompts the user to enter a name for the build.\n  - Saves the build to local storage.\n  - Calls loadBuilds() to refresh the list of saved builds.\n\n- Function: loadBuilds()\n  - Loads builds from local storage and displays them in the UI.\n\n- Function: loadBuild(index)\n  - Loads a specific build from local storage.\n  - Fetches skills and unique items to ensure the selections are updated.\n  - Adds event listeners for summary items.\n\n- Function: deleteBuild(index)\n  - Deletes a specific build from local storage.\n  - Calls loadBuilds() to refresh the list of saved builds.\n-------------------------------------\n\n8. File: public/js/classSelection.js\n\n- Function: initClassSelection(selectClassCallback, currentClass)\n  - Initializes the class selection process.\n  - Creates class cards and updates the summary when a class is selected.\n-----------------------------------\n\n9. File: public/js/dataFetchers.js\n\n- Function: fetchSkills(selectedClass, populateSkillDropdowns, displaySkillDetails, addSkillSelectionListeners)\n  - Fetches skills for the selected class from the server.\n  - Calls provided callbacks to populate skill dropdowns, display skill details, and add skill selection listeners.\n\n- Function: fetchUniqueItems(selectedClass, populateUniqueItems)\n  - Fetches unique items from the server.\n  - Filters items based on the selected class and calls populateUniqueItems().\n\n- Function: fetchAffixes(selectedClass, gearType, populateAffixSelection)\n  - Fetches affixes for the selected class and gear type from the server.\n  - Calls populateAffixSelection() with the fetched affixes.\n\n--------------------------------------\n10. File: public/js/eventListeners.js\n\n- Function: initializeEventListeners()\n  - Fetches the welcome message and sets up event listeners for various UI elements.\n\n------------------------------\n11. File: public/js/helper.js\n\n- Function: calculateTotalAttributes(selectedItems)\n  - Calculates total attributes based on selected items.\n  - Updates the UI with the calculated total attributes.\n-----------------------------------\n\n12. File: public/js/itemDetails.js\n\n- Function: displayItemDetails(selectedItems)\n  - Displays details of the selected items in the UI.\n  - Adds input event listeners to recalculate total attributes.\n\n- Function: displaySelectedItemDetails(item)\n  - Displays detailed information about a selected item in the UI.\n-------------------------------------\n\n13. File: public/js/itemSelection.js\n\n- Function: initItemSelection(displayItemDetails, calculateTotalAttributes)\n  - Initializes the item selection process.\n  - Function: populateItemDropdowns(items)\n    - Populates item dropdowns based on the provided items.\n    - Calls displayItemDetails() and calculateTotalAttributes() when an item is selected.\n----------------------------\n\n14. File: public/js/main.js\n\n- Manages the main functionality and initializes various components.\n- Functions: navigateToSection(type), event listeners for buttons, etc.\n- Calls functions from other modules to handle class, skill, and item selection.\n----------------------------------\n\n15. File: public/js/navigation.js\n\n- Function: navigateToSection(type, fetchUniqueItems, selectedClass)\n  - Handles navigation logic between different sections.\n  - Hides all sections and shows the specified section.\n------------------------------------\n\n16. File: public/js/skillDetails.js\n\n- Function: displaySkillDetails(skills, skillClass)\n  - Displays details of the provided skills in the UI.\n--------------------------------------\n\n17. File: public/js/skillSelection.js\n\n- Function: initSkillSelection(selectSkillCallback)\n  - Initializes the skill selection process.\n  - Function: populateSkillDropdowns(skills)\n    - Populates skill dropdowns with the provided skills.\n    - Calls selectSkillCallback() when a skill is selected.\n-------------------------------\n\n18. File: public/js/summary.js\n\n- Function: updateSummary(type, value, details = null)\n  - Updates the summary section with the provided type, value, and details.\n\n- Function: resetSummary()\n  - Resets the summary section.\n-------------------------------------------\n\n19. File: public/js/uniqueItemSelection.js\n\n- Function: initUniqueItemSelection(onItemSelected)\n  - Initializes the unique item selection process.\n  - Function: populateUniqueItems(items)\n    - Populates unique items in the UI and sets up click event listeners.\n------------------------\n\n20. File: src/server.ts\n\n- Sets up an Express server to serve static files and API endpoints.\n- API Endpoints: \n  - `/api/items/:class`: Get items by class.\n  - `/api/skills/:class`: Get skills by class.\n  - `/api/unique-items`: Get unique items.\n  - `/api/affixes/:class/:gearType`: Get gear affixes for a specific class and gear type.\n-----------------------\n\n21. File: src/store.ts\n\n- Class: Store\n  - Methods:\n    - getItemsByClass(itemClass): Fetches items for the specified class.\n    - getSkillsByClass(skillClass): Fetches skills for the specified class.\n-------------------------------------\n\n22. File: src/data/unique_items.json\n\n- Contains a list of unique items with their names, types, attributes, effects, lore, class, and images.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7codewizard%2Fd4utreborn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F7codewizard%2Fd4utreborn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7codewizard%2Fd4utreborn/lists"}