├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md ├── code_of_conduct.md ├── scripts │ ├── update_sitemap.py │ └── update_structure.py └── workflows │ ├── auto-label.yml │ ├── generate-sitemap.yml │ ├── greetings.yml │ ├── pr_merge.yaml │ ├── pr_raise.yml │ └── update-readme.yml ├── .vscode └── settings.json ├── 404.html ├── Documentation ├── PROJECT_STRUCTURE.md ├── contributing.md ├── images │ ├── SWOC.jpg │ ├── SWOC.png │ ├── home_UI.png │ ├── netlify.svg │ └── report.png ├── repo_structure.html ├── repo_structure.txt └── styles │ └── sitemap.xsl ├── LICENSE.md ├── README.md ├── SECURITY.md ├── appconfig ├── documentation.html ├── google71823fe3658f34e4.html ├── index.html ├── installation └── requirements.txt ├── sitemap.xml ├── software ├── __pycache__ │ ├── dataVisualization.cpython-311.pyc │ ├── db_config.cpython-312.pyc │ ├── financeTracker.cpython-311.pyc │ ├── functions.cpython-311.pyc │ ├── main.cpython-311.pyc │ ├── mainGUI.cpython-311.pyc │ ├── manage_data.cpython-312.pyc │ ├── plot.cpython-311.pyc │ └── report.cpython-311.pyc ├── database.sql ├── db_config.py ├── images │ ├── dark │ │ ├── 2dlogo.png │ │ ├── 3dScatter.png │ │ ├── 3dlogo.png │ │ ├── add.png │ │ ├── area_chart.png │ │ ├── background.png │ │ ├── bar_graph.png │ │ ├── delete-user.png │ │ ├── delete.png │ │ ├── equation.png │ │ ├── finance.png │ │ ├── globe.png │ │ ├── heatmap_plot.png │ │ ├── histogram.png │ │ ├── home.png │ │ ├── line_graph.png │ │ ├── logout.png │ │ ├── mode.png │ │ ├── pie_chart.png │ │ ├── polarScatter.png │ │ ├── preview.png │ │ ├── radar_chart.png │ │ ├── scatter_plot.png │ │ ├── surface.png │ │ ├── user.png │ │ ├── view.png │ │ └── visualization.png │ └── light │ │ ├── 2dlogo.png │ │ ├── 3dScatter.png │ │ ├── 3dlogo.png │ │ ├── add.png │ │ ├── area_chart.png │ │ ├── background.png │ │ ├── bar_graph.png │ │ ├── delete-user.png │ │ ├── delete.png │ │ ├── equation.png │ │ ├── finance.png │ │ ├── globe.png │ │ ├── heatmap_plot.png │ │ ├── histogram.png │ │ ├── home.png │ │ ├── line_graph.png │ │ ├── logout.png │ │ ├── mode.png │ │ ├── pie_chart.png │ │ ├── polarScatter.png │ │ ├── preview.png │ │ ├── radar_chart.png │ │ ├── scatter_plot.png │ │ ├── surface.png │ │ ├── user.png │ │ ├── view.png │ │ └── visualization.png ├── main.py ├── manage_data.py ├── report.py └── tempCodeRunnerFile.py └── website ├── pages ├── contributor.html ├── license.html ├── login.html ├── reviews.html ├── signup.html ├── support.html └── versions.html ├── scripts ├── beautifyReviews.js ├── contributor.js ├── fetchReviews.js ├── license.js ├── package-lock.json ├── package.json ├── reviews.json ├── script.js ├── sharedUtilities.js └── support.js ├── styles ├── 404.css ├── contributor.css ├── reviews.css ├── style.css └── support.css └── web_images ├── 2dglow.png ├── 2dglowhalfbg-removebg-preview.png ├── 2dlogo.svg ├── 3d.gif ├── 3d_glow.webp ├── 3dlogo.svg ├── ER_diagram.png ├── Infinity-2.png ├── about_down.webp ├── about_up.webp ├── coffee.png ├── copy.png ├── cubes.webp ├── data.png ├── develop_down.webp ├── develop_up.webp ├── doubt.png ├── finance_down.webp ├── finance_up.webp ├── galaxy.webp ├── github.png ├── hide_password_icon.png ├── issue.webp ├── live.gif ├── loader.mp4 ├── portal.webp ├── settings.webp ├── sponsor.png ├── stars.webp ├── top.webp ├── user.png ├── view_password_icon.png ├── volcano.gif └── wordcloud.png /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report any issues with the platform 4 | title: "" 5 | labels: ["🐛 bug"] 6 | assignees: "" 7 | --- 8 | 9 | 10 | 11 | ### Current Behaviour 12 | 13 | 14 | 15 | ### Expected Behaviour 16 | 17 | 18 | 19 | ### Screenshot 20 | 21 | 22 | 23 | ### Proposed Solution 24 | 25 | 26 | 27 | ### Technical Details 28 | 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest a feature or idea 4 | title: "" 5 | labels: ["✨ feature", "🚨 needs approval"] 6 | assignees: "" 7 | --- 8 | 9 | 10 | 11 | ### Current Behaviour 12 | 13 | 14 | 15 | ### Proposed Solution 16 | 17 | 18 | 19 | ### Screenshot/Mockup (Optional) 20 | 21 | 22 | 23 | ### Alternatives Considered 24 | 25 | 26 | 27 | ### Additional Context 28 | 29 | 30 | 31 | ### Requirement/Document 32 | 33 | 34 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | 3 | 4 | ### Related Issue 5 | Fixes # (issue) 6 | 7 | ### Type of change 8 | - [ ] Bug fix 9 | - [ ] New feature 10 | 11 | ### Checklist 12 | - [ ] My code follows the style guidelines of this project 13 | - [ ] I have performed a self-review of my own code 14 | - [ ] I have commented on my code, particularly in hard-to-understand areas 15 | - [ ] I have added tests that prove my fix is effective or that my feature works 16 | - [ ] New and existing unit tests pass locally with my changes 17 | - [ ] Any dependent changes have been merged and published in downstream modules 18 | -------------------------------------------------------------------------------- /.github/code_of_conduct.md: -------------------------------------------------------------------------------- 1 | # ✨Contributor Covenant Code of Conduct✨ 2 | 3 | --- 4 | ## 🌟Our Pledge 5 | --- 6 | We as members, contributors, and leaders pledge to make participation in our 7 | community a harassment-free experience for everyone, regardless of age, body 8 | size, visible or invisible disability, ethnicity, sex characteristics, gender 9 | identity and expression, level of experience, education, socio-economic status, 10 | nationality, personal appearance, race, religion, or sexual identity 11 | and orientation. 12 | 13 | We pledge to act and interact in ways that contribute to an open, welcoming, 14 | diverse, inclusive, and healthy community. 15 | 16 | --- 17 | ## 🚦Our Standards 18 | 19 | Examples of behavior that contributes to a positive environment for our 20 | community include: 21 | 22 | * 💖Demonstrating empathy and kindness toward other people 23 | * 🤝Being respectful of differing opinions, viewpoints, and experiences 24 | * 📝Giving and gracefully accepting constructive feedback 25 | * 🌱Accepting responsibility and apologizing to those affected by our mistakes, 26 | and learning from the experience 27 | * 🎯Focusing on what is best not just for us as individuals, but for the 28 | overall community 29 | 30 | Examples of unacceptable behavior include: 31 | 32 | * 🚫The use of sexualized language or imagery, and sexual attention or 33 | advances of any kind 34 | * 🛑Trolling, insulting or derogatory comments, and personal or political attacks 35 | * ⚠️Public or private harassment 36 | * 🔒Publishing others' private information, such as a physical or email 37 | address, without their explicit permission 38 | * ❌Other conduct which could reasonably be considered inappropriate in a 39 | professional setting 40 | 41 | --- 42 | 43 | ## 👨‍⚖️Enforcement Responsibilities 44 | 45 | Community leaders are responsible for clarifying and enforcing our standards of 46 | acceptable behavior and will take appropriate and fair corrective action in 47 | response to any behavior that they deem inappropriate, threatening, offensive, 48 | or harmful. 49 | 50 | Community leaders have the right and responsibility to remove, edit, or reject 51 | comments, commits, code, wiki edits, issues, and other contributions that are 52 | not aligned to this Code of Conduct, and will communicate reasons for moderation 53 | decisions when appropriate. 54 | 55 | --- 56 | ## 🌐Scope 57 | 58 | This Code of Conduct applies within all community spaces, and also applies when 59 | an individual is officially representing the community in public spaces. 60 | Examples of representing our community include using an official e-mail address, 61 | posting via an official social media account, or acting as an appointed 62 | representative at an online or offline event. 63 | 64 | --- 65 | ## 📋Pull Request Guidelines 66 | 67 | Contributions, including pull requests, must align with this Code of Conduct. 68 | All contributors are expected to submit work that fosters a positive and inclusive community. 69 | Inappropriate behavior, language, or content in pull requests may result in the rejection of 70 | the contribution and further enforcement actions as outlined in the guidelines. 71 | 72 | --- 73 | ## 🛡️Enforcement 74 | 75 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 76 | reported to the community leaders responsible for enforcement at 77 | . 78 | All complaints will be reviewed and investigated promptly and fairly. 79 | 80 | All community leaders are obligated to respect the privacy and security of the 81 | reporter of any incident. 82 | 83 | --- 84 | ## 📖Enforcement Guidelines 85 | 86 | Community leaders will follow these Community Impact Guidelines in determining 87 | the consequences for any action they deem in violation of this Code of Conduct: 88 | 89 | ### 1. ✏️Correction 90 | 91 | **Community Impact**: Use of inappropriate language or other behavior deemed 92 | unprofessional or unwelcome in the community. 93 | 94 | **Consequence**: A private, written warning from community leaders, providing 95 | clarity around the nature of the violation and an explanation of why the 96 | behavior was inappropriate. A public apology may be requested. 97 | 98 | ### 2. ⚠️Warning 99 | 100 | **Community Impact**: A violation through a single incident or series 101 | of actions. 102 | 103 | **Consequence**: A warning with consequences for continued behavior. No 104 | interaction with the people involved, including unsolicited interaction with 105 | those enforcing the Code of Conduct, for a specified period of time. This 106 | includes avoiding interactions in community spaces as well as external channels 107 | like social media. Violating these terms may lead to a temporary or 108 | permanent ban. 109 | 110 | ### 3. ⏳Temporary Ban 111 | 112 | **Community Impact**: A serious violation of community standards, including 113 | sustained inappropriate behavior. 114 | 115 | **Consequence**: A temporary ban from any sort of interaction or public 116 | communication with the community for a specified period of time. No public or 117 | private interaction with the people involved, including unsolicited interaction 118 | with those enforcing the Code of Conduct, is allowed during this period. 119 | Violating these terms may lead to a permanent ban. 120 | 121 | ### 4. 🚫Permanent Ban 122 | 123 | **Community Impact**: Demonstrating a pattern of violation of community 124 | standards, including sustained inappropriate behavior, harassment of an 125 | individual, or aggression toward or disparagement of classes of individuals. 126 | 127 | **Consequence**: A permanent ban from any sort of public interaction within 128 | the community. 129 | 130 | --- 131 | ## 📜Attribution 132 | 133 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 134 | version 2.0, available at 135 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 136 | 137 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 138 | enforcement ladder](https://github.com/mozilla/diversity). 139 | 140 | [homepage]: https://www.contributor-covenant.org 141 | 142 | For answers to common questions about this code of conduct, see the FAQ at 143 | https://www.contributor-covenant.org/faq. Translations are available at 144 | https://www.contributor-covenant.org/translations. 145 | -------------------------------------------------------------------------------- /.github/scripts/update_sitemap.py: -------------------------------------------------------------------------------- 1 | import os 2 | import github 3 | from github import Github 4 | 5 | # Helper function to recursively build the repo structure and include file extensions 6 | def get_repo_structure(path='.', prefix=''): 7 | structure = [] 8 | try: 9 | items = sorted(os.listdir(path)) 10 | except FileNotFoundError: 11 | print(f"Path not found: {path}") 12 | return structure 13 | 14 | for i, item in enumerate(items): 15 | if item.startswith('.'): 16 | continue # Skip hidden files and directories 17 | item_path = os.path.join(path, item) 18 | is_last = i == len(items) - 1 19 | current_prefix = '└── ' if is_last else '├── ' 20 | 21 | if os.path.isdir(item_path): 22 | # Directory case 23 | structure.append(f"{prefix}{current_prefix}{item}/") 24 | next_prefix = prefix + (' ' if is_last else '│ ') 25 | structure.extend(get_repo_structure(item_path, next_prefix)) 26 | else: 27 | # File case with extension 28 | file_name, file_extension = os.path.splitext(item) 29 | structure.append(f"{prefix}{current_prefix}{file_name}{file_extension}") 30 | 31 | return structure 32 | 33 | # Function to update the repo_structure.txt file 34 | def update_structure_file(structure): 35 | try: 36 | with open('Documentation/repo_structure.txt', 'w') as f: 37 | f.write('\n'.join(structure)) 38 | print("repo_structure.txt updated successfully.") 39 | except IOError as e: 40 | print(f"Error writing to repo_structure.txt: {e}") 41 | 42 | # Function to update the README.md with the new structure 43 | def update_README(structure): 44 | try: 45 | with open('Documentation/PROJECT_STRUCTURE.md', 'r') as f: 46 | content = f.read() 47 | except FileNotFoundError: 48 | print("PROJECT_STRUCTURE.md not found.") 49 | return 50 | 51 | start_marker = '' 52 | end_marker = '' 53 | 54 | start_index = content.find(start_marker) 55 | end_index = content.find(end_marker) 56 | 57 | if start_index != -1 and end_index != -1: 58 | new_content = ( 59 | content[:start_index + len(start_marker)] + 60 | '\n```\n' + '\n'.join(structure) + '\n```\n' + 61 | content[end_index:] 62 | ) 63 | try: 64 | with open('Documentation/PROJECT_STRUCTURE.md', 'w') as f: 65 | f.write(new_content) 66 | print("PROJECT_STRUCTURE.md updated with new structure.") 67 | except IOError as e: 68 | print(f"Error writing to PROJECT_STRUCTURE.md: {e}") 69 | else: 70 | print("Markers not found in PROJECT_STRUCTURE.md. Structure not updated.") 71 | 72 | # Main function to compare and update repository structure 73 | def main(): 74 | gh_token = os.getenv('GH_TOKEN') 75 | gh_repo = os.getenv('GITHUB_REPOSITORY') 76 | 77 | if not gh_token or not gh_repo: 78 | print("Environment variables GH_TOKEN and GITHUB_REPOSITORY must be set.") 79 | return 80 | 81 | g = Github(gh_token) 82 | repo = g.get_repo(gh_repo) 83 | 84 | current_structure = get_repo_structure() 85 | 86 | try: 87 | # Fetch the contents of repo_structure.txt from GitHub 88 | contents = repo.get_contents("Documentation/repo_structure.txt") 89 | existing_structure = contents.decoded_content.decode().split('\n') 90 | except github.GithubException: 91 | existing_structure = None 92 | 93 | if current_structure != existing_structure: 94 | update_structure_file(current_structure) 95 | update_README(current_structure) 96 | print("Repository structure updated.") 97 | else: 98 | print("No changes in repository structure.") 99 | 100 | if __name__ == "__main__": 101 | main() -------------------------------------------------------------------------------- /.github/scripts/update_structure.py: -------------------------------------------------------------------------------- 1 | import os 2 | import github 3 | from github import Github 4 | 5 | # Helper function to recursively build the repo structure and include file extensions 6 | def get_repo_structure(path='.', prefix=''): 7 | structure = [] 8 | try: 9 | items = sorted(os.listdir(path)) 10 | except FileNotFoundError: 11 | print(f"Path not found: {path}") 12 | return structure 13 | 14 | for i, item in enumerate(items): 15 | if item.startswith('.'): 16 | continue # Skip hidden files and directories 17 | item_path = os.path.join(path, item) 18 | is_last = i == len(items) - 1 19 | current_prefix = '└── ' if is_last else '├── ' 20 | 21 | if os.path.isdir(item_path): 22 | # Directory case 23 | structure.append(f"{prefix}{current_prefix}{item}/") 24 | next_prefix = prefix + (' ' if is_last else '│ ') 25 | structure.extend(get_repo_structure(item_path, next_prefix)) 26 | else: 27 | # File case with extension 28 | file_name, file_extension = os.path.splitext(item) 29 | structure.append(f"{prefix}{current_prefix}{file_name}{file_extension}") 30 | 31 | return structure 32 | 33 | # Function to update the repo_structure.txt file 34 | def update_structure_file(structure): 35 | try: 36 | with open('Documentation/repo_structure.txt', 'w') as f: 37 | f.write('\n'.join(structure)) 38 | print("repo_structure.txt updated successfully.") 39 | except IOError as e: 40 | print(f"Error writing to repo_structure.txt: {e}") 41 | 42 | # Function to update the README.md with the new structure 43 | def update_README(structure): 44 | try: 45 | with open('Documentation/PROJECT_STRUCTURE.md', 'r') as f: 46 | content = f.read() 47 | except FileNotFoundError: 48 | print("PROJECT_STRUCTURE.md not found.") 49 | return 50 | 51 | start_marker = '' 52 | end_marker = '' 53 | 54 | start_index = content.find(start_marker) 55 | end_index = content.find(end_marker) 56 | 57 | if start_index != -1 and end_index != -1: 58 | new_content = ( 59 | content[:start_index + len(start_marker)] + 60 | '\n```\n' + '\n'.join(structure) + '\n```\n' + 61 | content[end_index:] 62 | ) 63 | try: 64 | with open('Documentation/PROJECT_STRUCTURE.md', 'w') as f: 65 | f.write(new_content) 66 | print("PROJECT_STRUCTURE.md updated with new structure.") 67 | except IOError as e: 68 | print(f"Error writing to PROJECT_STRUCTURE.md: {e}") 69 | else: 70 | print("Markers not found in PROJECT_STRUCTURE.md. Structure not updated.") 71 | 72 | # Main function to compare and update repository structure 73 | def main(): 74 | gh_token = os.getenv('GH_TOKEN') 75 | gh_repo = os.getenv('GITHUB_REPOSITORY') 76 | 77 | if not gh_token or not gh_repo: 78 | print("Environment variables GH_TOKEN and GITHUB_REPOSITORY must be set.") 79 | return 80 | 81 | g = Github(gh_token) 82 | repo = g.get_repo(gh_repo) 83 | 84 | current_structure = get_repo_structure() 85 | 86 | try: 87 | # Fetch the contents of repo_structure.txt from GitHub 88 | contents = repo.get_contents("Documentation/repo_structure.txt") 89 | existing_structure = contents.decoded_content.decode().split('\n') 90 | except github.GithubException: 91 | existing_structure = None 92 | 93 | if current_structure != existing_structure: 94 | update_structure_file(current_structure) 95 | update_README(current_structure) 96 | print("Repository structure updated.") 97 | else: 98 | print("No changes in repository structure.") 99 | 100 | if __name__ == "__main__": 101 | main() 102 | -------------------------------------------------------------------------------- /.github/workflows/auto-label.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Auto Label Issue 3 | 4 | on: 5 | issues: 6 | types: [opened, reopened, edited] 7 | 8 | jobs: 9 | label_issue: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | issues: write 13 | steps: 14 | - name: Label Issue with Custom Color 15 | uses: actions/github-script@v6 16 | with: 17 | github-token: ${{secrets.GITHUB_TOKEN}} 18 | script: | 19 | const issue = context.payload.issue; 20 | 21 | // Function to create or update a label with the specified color 22 | const createOrUpdateLabel = async (label, color) => { 23 | try { 24 | // Check if the label already exists 25 | await github.rest.issues.getLabel({ 26 | owner: context.repo.owner, 27 | repo: context.repo.repo, 28 | name: label 29 | }); 30 | 31 | // Update label color if it exists 32 | await github.rest.issues.updateLabel({ 33 | owner: context.repo.owner, 34 | repo: context.repo.repo, 35 | name: label, 36 | color: color 37 | }); 38 | } catch (error) { 39 | // Create the label if it does not exist 40 | await github.rest.issues.createLabel({ 41 | owner: context.repo.owner, 42 | repo: context.repo.repo, 43 | name: label, 44 | color: color, 45 | description: `Waiting for the Dataverse's Maintainer to review this issue.` 46 | }); 47 | } 48 | }; 49 | 50 | // Define the label name and color 51 | const label = 'Review Queued'; 52 | const color = 'ffae00'; // Custom color hex code 53 | 54 | // Create or update the label and apply it to the issue 55 | await createOrUpdateLabel(label, color); 56 | await github.rest.issues.addLabels({ 57 | owner: context.repo.owner, 58 | repo: context.repo.repo, 59 | issue_number: issue.number, 60 | labels: [label] 61 | }); 62 | -------------------------------------------------------------------------------- /.github/workflows/generate-sitemap.yml: -------------------------------------------------------------------------------- 1 | name: Generate Sitemap 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | workflow_dispatch: 8 | 9 | permissions: 10 | contents: write 11 | 12 | jobs: 13 | generate-sitemap: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout Repository 17 | uses: actions/checkout@v3 18 | 19 | - name: Set up Python 20 | uses: actions/setup-python@v4 21 | with: 22 | python-version: 3.x 23 | 24 | - name: Install Dependencies 25 | run: pip install beautifulsoup4 requests lxml 26 | 27 | - name: Generate Sitemap 28 | run: python .github/scripts/update_sitemap.py 29 | 30 | - name: Configure Git 31 | run: | 32 | git config --global user.name "github-actions[bot]" 33 | git config --global user.email "github-actions[bot]@users.noreply.github.com" 34 | 35 | - name: Commit and Push Sitemap 36 | run: | 37 | git add . 38 | git commit -m "Auto Update Sitemap" || echo "No changes to commit" 39 | git push 40 | -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- 1 | name: Greetings 2 | 3 | on: [pull_request_target, issues] 4 | 5 | jobs: 6 | greeting: 7 | runs-on: ubuntu-latest 8 | permissions: 9 | issues: write 10 | pull-requests: write 11 | steps: 12 | - uses: actions/first-interaction@v1 13 | with: 14 | repo-token: ${{ secrets.GITHUB_TOKEN }} 15 | issue-message: "👋 Thank you for raising an issue! We appreciate your effort in helping us improve. A maintainer from `Dataverse` will review it shortly. Stay tuned!" 16 | pr-message: " 🎉 Thank you for your contribution! Your pull request has been submitted successfully. A maintainer from `Dataverse` will review it soon. We appreciate your support in making this project better." -------------------------------------------------------------------------------- /.github/workflows/pr_merge.yaml: -------------------------------------------------------------------------------- 1 | name: Merge Thank You (Dataverse) 2 | 3 | on: 4 | pull_request_target: 5 | types: [closed] # Trigger when a PR is closed 6 | 7 | permissions: 8 | issues: write 9 | pull-requests: write 10 | 11 | jobs: 12 | post_merge_message: 13 | if: github.event.pull_request.merged == true # Only run if the PR was merged 14 | runs-on: ubuntu-latest 15 | 16 | steps: 17 | - name: Post thank you message 18 | uses: actions/github-script@v7 19 | with: 20 | github-token: ${{ secrets.GITHUB_TOKEN }} # Ensure token is used 21 | script: | 22 | const prNumber = context.payload.pull_request.number; 23 | const owner = context.repo.owner; 24 | const repo = context.repo.repo; 25 | 26 | // Post a thank you message upon PR merge 27 | await github.rest.issues.createComment({ 28 | owner: owner, 29 | repo: repo, 30 | issue_number: prNumber, 31 | body: `🎉🎉 Thank you for your contribution! Your PR #${prNumber} has been merged! 🎉🎉` 32 | }); 33 | -------------------------------------------------------------------------------- /.github/workflows/pr_raise.yml: -------------------------------------------------------------------------------- 1 | name: Auto Comment on PR (Dataverse) 2 | 3 | on: 4 | pull_request_target: 5 | types: [opened] 6 | 7 | permissions: 8 | issues: write 9 | pull-requests: write 10 | 11 | jobs: 12 | comment: 13 | runs-on: ubuntu-latest 14 | permissions: 15 | pull-requests: write 16 | steps: 17 | - name: Add Comment to Pull Request 18 | run: | 19 | COMMENT=$(cat < 2 | 3 | 4 | 5 | 6 | Page Not Found :( 7 | 8 | 9 | 10 | 11 |
44
12 |
Oops! Page not found.
13 |
We couldn't find the page you requested. It might be unavailable at the moment or have a different URL.
14 | Return to Home 15 | 16 | -------------------------------------------------------------------------------- /Documentation/PROJECT_STRUCTURE.md: -------------------------------------------------------------------------------- 1 | ## Project Structure 📂 2 | 3 | 4 | ``` 5 | ├── 404.html 6 | ├── Documentation/ 7 | │ ├── PROJECT_STRUCTURE.md 8 | │ ├── contributing.md 9 | │ ├── images/ 10 | │ │ ├── SWOC.jpg 11 | │ │ ├── SWOC.png 12 | │ │ ├── home_UI.png 13 | │ │ ├── netlify.svg 14 | │ │ └── report.png 15 | │ ├── repo_structure.html 16 | │ ├── repo_structure.txt 17 | │ └── styles/ 18 | │ └── sitemap.xsl 19 | ├── LICENSE.md 20 | ├── README.md 21 | ├── SECURITY.md 22 | ├── appconfig 23 | ├── documentation.html 24 | ├── google71823fe3658f34e4.html 25 | ├── index.html 26 | ├── installation/ 27 | │ └── requirements.txt 28 | ├── sitemap.xml 29 | ├── software/ 30 | │ ├── __pycache__/ 31 | │ │ ├── dataVisualization.cpython-311.pyc 32 | │ │ ├── db_config.cpython-312.pyc 33 | │ │ ├── financeTracker.cpython-311.pyc 34 | │ │ ├── functions.cpython-311.pyc 35 | │ │ ├── main.cpython-311.pyc 36 | │ │ ├── mainGUI.cpython-311.pyc 37 | │ │ ├── manage_data.cpython-312.pyc 38 | │ │ ├── plot.cpython-311.pyc 39 | │ │ └── report.cpython-311.pyc 40 | │ ├── database.sql 41 | │ ├── db_config.py 42 | │ ├── images/ 43 | │ │ ├── dark/ 44 | │ │ │ ├── 2dlogo.png 45 | │ │ │ ├── 3dScatter.png 46 | │ │ │ ├── 3dlogo.png 47 | │ │ │ ├── add.png 48 | │ │ │ ├── area_chart.png 49 | │ │ │ ├── background.png 50 | │ │ │ ├── bar_graph.png 51 | │ │ │ ├── delete-user.png 52 | │ │ │ ├── delete.png 53 | │ │ │ ├── equation.png 54 | │ │ │ ├── finance.png 55 | │ │ │ ├── globe.png 56 | │ │ │ ├── heatmap_plot.png 57 | │ │ │ ├── histogram.png 58 | │ │ │ ├── home.png 59 | │ │ │ ├── line_graph.png 60 | │ │ │ ├── logout.png 61 | │ │ │ ├── mode.png 62 | │ │ │ ├── pie_chart.png 63 | │ │ │ ├── polarScatter.png 64 | │ │ │ ├── preview.png 65 | │ │ │ ├── radar_chart.png 66 | │ │ │ ├── scatter_plot.png 67 | │ │ │ ├── surface.png 68 | │ │ │ ├── user.png 69 | │ │ │ ├── view.png 70 | │ │ │ └── visualization.png 71 | │ │ └── light/ 72 | │ │ ├── 2dlogo.png 73 | │ │ ├── 3dScatter.png 74 | │ │ ├── 3dlogo.png 75 | │ │ ├── add.png 76 | │ │ ├── area_chart.png 77 | │ │ ├── background.png 78 | │ │ ├── bar_graph.png 79 | │ │ ├── delete-user.png 80 | │ │ ├── delete.png 81 | │ │ ├── equation.png 82 | │ │ ├── finance.png 83 | │ │ ├── globe.png 84 | │ │ ├── heatmap_plot.png 85 | │ │ ├── histogram.png 86 | │ │ ├── home.png 87 | │ │ ├── line_graph.png 88 | │ │ ├── logout.png 89 | │ │ ├── mode.png 90 | │ │ ├── pie_chart.png 91 | │ │ ├── polarScatter.png 92 | │ │ ├── preview.png 93 | │ │ ├── radar_chart.png 94 | │ │ ├── scatter_plot.png 95 | │ │ ├── surface.png 96 | │ │ ├── user.png 97 | │ │ ├── view.png 98 | │ │ └── visualization.png 99 | │ ├── main.py 100 | │ ├── manage_data.py 101 | │ ├── report.py 102 | │ └── tempCodeRunnerFile.py 103 | └── website/ 104 | ├── pages/ 105 | │ ├── contributor.html 106 | │ ├── license.html 107 | │ ├── login.html 108 | │ ├── reviews.html 109 | │ ├── signup.html 110 | │ ├── support.html 111 | │ └── versions.html 112 | ├── scripts/ 113 | │ ├── beautifyReviews.js 114 | │ ├── contributor.js 115 | │ ├── fetchReviews.js 116 | │ ├── license.js 117 | │ ├── package-lock.json 118 | │ ├── package.json 119 | │ ├── reviews.json 120 | │ ├── script.js 121 | │ ├── sharedUtilities.js 122 | │ └── support.js 123 | ├── styles/ 124 | │ ├── 404.css 125 | │ ├── contributor.css 126 | │ ├── reviews.css 127 | │ ├── style.css 128 | │ └── support.css 129 | └── web_images/ 130 | ├── 2dglow.png 131 | ├── 2dglowhalfbg-removebg-preview.png 132 | ├── 2dlogo.svg 133 | ├── 3d.gif 134 | ├── 3d_glow.webp 135 | ├── 3dlogo.svg 136 | ├── ER_diagram.png 137 | ├── Infinity-2.png 138 | ├── about_down.webp 139 | ├── about_up.webp 140 | ├── coffee.png 141 | ├── copy.png 142 | ├── cubes.webp 143 | ├── data.png 144 | ├── develop_down.webp 145 | ├── develop_up.webp 146 | ├── doubt.png 147 | ├── finance_down.webp 148 | ├── finance_up.webp 149 | ├── galaxy.webp 150 | ├── github.png 151 | ├── hide_password_icon.png 152 | ├── issue.webp 153 | ├── live.gif 154 | ├── loader.mp4 155 | ├── portal.webp 156 | ├── settings.webp 157 | ├── sponsor.png 158 | ├── stars.webp 159 | ├── top.webp 160 | ├── user.png 161 | ├── view_password_icon.png 162 | ├── volcano.gif 163 | └── wordcloud.png 164 | ``` 165 | -------------------------------------------------------------------------------- /Documentation/contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing to Dataverse 2 | 3 | #### Technologies and Tools Used 4 | 5 | | ![Python](https://img.shields.io/badge/Python-FFD43B?style=flat&logo=python&logoColor=blue) ![Tkinter](https://img.shields.io/badge/Tkinter-blue?style=flat&logo=python&logoColor=white) ![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=flat&logo=Matplotlib&logoColor=black) ![Seaborn](https://img.shields.io/badge/Seaborn-%2363a4a6.svg?style=flat&logo=Seaborn&logoColor=black) ![Plotly](https://img.shields.io/badge/Plotly-%233F4F75.svg?style=flat&logo=plotly&logoColor=white) ![Pandas](https://img.shields.io/badge/pandas-%23150458.svg?style=flat&logo=pandas&logoColor=white) ![scikit-learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=flat&logo=scikit-learn&logoColor=white) ![MySQL](https://img.shields.io/badge/MySQL-005C84?style=flat&logo=mysql&logoColor=white) ![Microsoft Excel](https://img.shields.io/badge/Microsoft_Excel-217346?style=flat&logo=microsoft-excel&logoColor=white) ![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=flat&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=flat&logo=css3&logoColor=white) ![JavaScript](https://img.shields.io/badge/JavaScript-323330?style=flat&logo=javascript&logoColor=F7DF1E) ![Netlify](https://img.shields.io/badge/Netlify-%2300C7B7.svg?style=flat&logo=netlify&logoColor=000000) ![Postman](https://img.shields.io/badge/Postman-FF6C37?style=flat&logo=postman&logoColor=white) | 6 | |-| 7 | 8 | Follow these steps: 9 | 10 | - Go to [issues](https://github.com/multiverseweb/Dataverse/issues), and find one that you can solve or create a new issue. 11 | - Fork the repository. 12 | 13 | > [!IMPORTANT] 14 | > Read [deployment specifications](https://github.com/multiverseweb/Dataverse?tab=readme-ov-file#deployment-specifications) to set up the project. 15 | 16 | - Create a new branch: 17 | 18 | ``` 19 | git checkout -b 20 | ``` 21 | 22 | - Make your contributions to solve the issue. 23 | 24 | - Append the name of your city to `cities` list at [`line no. 6` in website/scripts/script.js](https://github.com/multiverseweb/Dataverse/blob/main/website/scripts/script.js#L5-L7) (optional) 25 | 26 | - Commit the changes: 27 | 28 | ``` 29 | git commit -m 30 | ``` 31 | 32 | - Push to the branch: 33 | ``` 34 | git push origin 35 | ``` 36 | 37 | - Create a Pull Request, so we can review and merge it. 38 | 39 | If you find this repo helpful, a star ⭐ would mean a lot. Thank you! ❤️ 40 | -------------------------------------------------------------------------------- /Documentation/images/SWOC.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/Documentation/images/SWOC.jpg -------------------------------------------------------------------------------- /Documentation/images/SWOC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/Documentation/images/SWOC.png -------------------------------------------------------------------------------- /Documentation/images/home_UI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/Documentation/images/home_UI.png -------------------------------------------------------------------------------- /Documentation/images/netlify.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Documentation/images/report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/Documentation/images/report.png -------------------------------------------------------------------------------- /Documentation/repo_structure.html: -------------------------------------------------------------------------------- 1 | ├── 404.html 2 | ├──
Documentation/ 3 | │ ├── Contributing.md 4 | │ ├── PROJECT_STRUCTURE.md 5 | │ ├──
images/ 6 | │ │ └── netlify.svg
7 | │ ├── repo_structure.html 8 | │ ├── repo_structure.txt 9 | │ └──
styles/ 10 | │ └── sitemap.xsl
11 | ├── LICENSE.md 12 | ├── README.md 13 | ├── SECURITY.md 14 | ├── documentation.html 15 | ├── index.html 16 | ├──
installation/ 17 | │ └── requirements.txt
18 | ├── sitemap.xml 19 | ├──
software/ 20 | │ ├──
__pycache__/ 21 | │ │ ├── dataVisualization.cpython-311.pyc 22 | │ │ ├── financeTracker.cpython-311.pyc 23 | │ │ ├── functions.cpython-311.pyc 24 | │ │ ├── main.cpython-311.pyc 25 | │ │ ├── mainGUI.cpython-311.pyc 26 | │ │ ├── plot.cpython-311.pyc 27 | │ │ └── report.cpython-311.pyc
28 | │ ├── database.sql 29 | │ ├── financeTracker.py 30 | │ ├── finance_tracker.ipynb 31 | │ ├──
images/ 32 | │ │ ├── 2dlogo.png 33 | │ │ ├── 3dScatter.png 34 | │ │ ├── 3dlogo.png 35 | │ │ ├── add.png 36 | │ │ ├── area_chart.png 37 | │ │ ├── background.png 38 | │ │ ├── bar_graph.png 39 | │ │ ├── delete-user.png 40 | │ │ ├── delete.png 41 | │ │ ├── equation.png 42 | │ │ ├── finance.png 43 | │ │ ├── globe.png 44 | │ │ ├── heatmap_plot.png 45 | │ │ ├── histogram.png 46 | │ │ ├── home.png 47 | │ │ ├── line_graph.png 48 | │ │ ├── logout.png 49 | │ │ ├── pie_chart.png 50 | │ │ ├── polarScatter.png 51 | │ │ ├── preview.png 52 | │ │ ├── radar_chart.png 53 | │ │ ├── scatter_plot.png 54 | │ │ ├── surface.png 55 | │ │ ├── user.png 56 | │ │ ├── view.png 57 | │ │ └── visualization.png
58 | │ ├── main.py 59 | │ ├── report.py 60 | │ └── tempCodeRunnerFile.py
61 | └──
website/ 62 | ├──
pages/ 63 | │ ├── contributor.html 64 | │ ├── license.html 65 | │ ├── login.html 66 | │ ├── reviews.html 67 | │ ├── signup.html 68 | │ └── support.html
69 | ├──
scripts/ 70 | │ ├── beautifyReviews.js 71 | │ ├── contributor.js 72 | │ ├── fetchReviews.js 73 | │ ├── license.js 74 | │ ├── package-lock.json 75 | │ ├── package.json 76 | │ ├── reviews.json 77 | │ ├── script.js 78 | │ ├── sharedUtilities.js 79 | │ └── support.js
80 | ├──
styles/ 81 | │ ├── 404.css 82 | │ ├── contributor.css 83 | │ ├── reviews.css 84 | │ ├── style.css 85 | │ └── support.css
86 | └──
web_images/ 87 | ├── 2dglow.png 88 | ├── 2dglowhalfbg-removebg-preview.png 89 | ├── 2dlogo.svg 90 | ├── 3d.gif 91 | ├── 3d_glow.webp 92 | ├── 3dlogo.svg 93 | ├── ER_diagram.png 94 | ├── Infinity-2.png 95 | ├── about_down.webp 96 | ├── about_up.webp 97 | ├── coffee.png 98 | ├── copy.png 99 | ├── cubes.webp 100 | ├── data.png 101 | ├── develop_down.webp 102 | ├── develop_up.webp 103 | ├── doubt.png 104 | ├── finance_down.webp 105 | ├── finance_up.webp 106 | ├── galaxy.webp 107 | ├── github.png 108 | ├── hide_password_icon.png 109 | ├── issue.png 110 | ├── issue.webp 111 | ├── live.gif 112 | ├── loader.gif 113 | ├── loader.mp4 114 | ├── portal.webp 115 | ├── preview.png 116 | ├── settings.webp 117 | ├── sponsor.png 118 | ├── stars.webp 119 | ├── top.webp 120 | ├── user.png 121 | ├── view_password_icon.png 122 | ├── volcano.gif 123 | └── wordcloud.png
-------------------------------------------------------------------------------- /Documentation/repo_structure.txt: -------------------------------------------------------------------------------- 1 | ├── 404.html 2 | ├── Documentation/ 3 | │ ├── PROJECT_STRUCTURE.md 4 | │ ├── contributing.md 5 | │ ├── images/ 6 | │ │ ├── SWOC.jpg 7 | │ │ ├── SWOC.png 8 | │ │ ├── home_UI.png 9 | │ │ ├── netlify.svg 10 | │ │ └── report.png 11 | │ ├── repo_structure.html 12 | │ ├── repo_structure.txt 13 | │ └── styles/ 14 | │ └── sitemap.xsl 15 | ├── LICENSE.md 16 | ├── README.md 17 | ├── SECURITY.md 18 | ├── appconfig 19 | ├── documentation.html 20 | ├── google71823fe3658f34e4.html 21 | ├── index.html 22 | ├── installation/ 23 | │ └── requirements.txt 24 | ├── sitemap.xml 25 | ├── software/ 26 | │ ├── __pycache__/ 27 | │ │ ├── dataVisualization.cpython-311.pyc 28 | │ │ ├── db_config.cpython-312.pyc 29 | │ │ ├── financeTracker.cpython-311.pyc 30 | │ │ ├── functions.cpython-311.pyc 31 | │ │ ├── main.cpython-311.pyc 32 | │ │ ├── mainGUI.cpython-311.pyc 33 | │ │ ├── manage_data.cpython-312.pyc 34 | │ │ ├── plot.cpython-311.pyc 35 | │ │ └── report.cpython-311.pyc 36 | │ ├── database.sql 37 | │ ├── db_config.py 38 | │ ├── images/ 39 | │ │ ├── dark/ 40 | │ │ │ ├── 2dlogo.png 41 | │ │ │ ├── 3dScatter.png 42 | │ │ │ ├── 3dlogo.png 43 | │ │ │ ├── add.png 44 | │ │ │ ├── area_chart.png 45 | │ │ │ ├── background.png 46 | │ │ │ ├── bar_graph.png 47 | │ │ │ ├── delete-user.png 48 | │ │ │ ├── delete.png 49 | │ │ │ ├── equation.png 50 | │ │ │ ├── finance.png 51 | │ │ │ ├── globe.png 52 | │ │ │ ├── heatmap_plot.png 53 | │ │ │ ├── histogram.png 54 | │ │ │ ├── home.png 55 | │ │ │ ├── line_graph.png 56 | │ │ │ ├── logout.png 57 | │ │ │ ├── mode.png 58 | │ │ │ ├── pie_chart.png 59 | │ │ │ ├── polarScatter.png 60 | │ │ │ ├── preview.png 61 | │ │ │ ├── radar_chart.png 62 | │ │ │ ├── scatter_plot.png 63 | │ │ │ ├── surface.png 64 | │ │ │ ├── user.png 65 | │ │ │ ├── view.png 66 | │ │ │ └── visualization.png 67 | │ │ └── light/ 68 | │ │ ├── 2dlogo.png 69 | │ │ ├── 3dScatter.png 70 | │ │ ├── 3dlogo.png 71 | │ │ ├── add.png 72 | │ │ ├── area_chart.png 73 | │ │ ├── background.png 74 | │ │ ├── bar_graph.png 75 | │ │ ├── delete-user.png 76 | │ │ ├── delete.png 77 | │ │ ├── equation.png 78 | │ │ ├── finance.png 79 | │ │ ├── globe.png 80 | │ │ ├── heatmap_plot.png 81 | │ │ ├── histogram.png 82 | │ │ ├── home.png 83 | │ │ ├── line_graph.png 84 | │ │ ├── logout.png 85 | │ │ ├── mode.png 86 | │ │ ├── pie_chart.png 87 | │ │ ├── polarScatter.png 88 | │ │ ├── preview.png 89 | │ │ ├── radar_chart.png 90 | │ │ ├── scatter_plot.png 91 | │ │ ├── surface.png 92 | │ │ ├── user.png 93 | │ │ ├── view.png 94 | │ │ └── visualization.png 95 | │ ├── main.py 96 | │ ├── manage_data.py 97 | │ ├── report.py 98 | │ └── tempCodeRunnerFile.py 99 | └── website/ 100 | ├── pages/ 101 | │ ├── contributor.html 102 | │ ├── license.html 103 | │ ├── login.html 104 | │ ├── reviews.html 105 | │ ├── signup.html 106 | │ ├── support.html 107 | │ └── versions.html 108 | ├── scripts/ 109 | │ ├── beautifyReviews.js 110 | │ ├── contributor.js 111 | │ ├── fetchReviews.js 112 | │ ├── license.js 113 | │ ├── package-lock.json 114 | │ ├── package.json 115 | │ ├── reviews.json 116 | │ ├── script.js 117 | │ ├── sharedUtilities.js 118 | │ └── support.js 119 | ├── styles/ 120 | │ ├── 404.css 121 | │ ├── contributor.css 122 | │ ├── reviews.css 123 | │ ├── style.css 124 | │ └── support.css 125 | └── web_images/ 126 | ├── 2dglow.png 127 | ├── 2dglowhalfbg-removebg-preview.png 128 | ├── 2dlogo.svg 129 | ├── 3d.gif 130 | ├── 3d_glow.webp 131 | ├── 3dlogo.svg 132 | ├── ER_diagram.png 133 | ├── Infinity-2.png 134 | ├── about_down.webp 135 | ├── about_up.webp 136 | ├── coffee.png 137 | ├── copy.png 138 | ├── cubes.webp 139 | ├── data.png 140 | ├── develop_down.webp 141 | ├── develop_up.webp 142 | ├── doubt.png 143 | ├── finance_down.webp 144 | ├── finance_up.webp 145 | ├── galaxy.webp 146 | ├── github.png 147 | ├── hide_password_icon.png 148 | ├── issue.webp 149 | ├── live.gif 150 | ├── loader.mp4 151 | ├── portal.webp 152 | ├── settings.webp 153 | ├── sponsor.png 154 | ├── stars.webp 155 | ├── top.webp 156 | ├── user.png 157 | ├── view_password_icon.png 158 | ├── volcano.gif 159 | └── wordcloud.png -------------------------------------------------------------------------------- /Documentation/styles/sitemap.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Sitemap 9 | 41 | 42 | 43 |

Sitemap

44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
URLLast ModifiedChange Freq.Priority
60 | 61 | 62 |
63 |
64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dataverse 2 | 3 | 4 | ###### Data Visualisation Software & Finance Tracker 5 | 6 | 7 | 8 | 9 | ![Visitors](https://api.visitorbadge.io/api/visitors?path=multiverseweb2%2Dataverse%20&countColor=%23263759&style=flat&initial=5767) 10 | ![License](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-4e3eb5) 11 | ![Languages](https://img.shields.io/github/languages/count/multiverseweb/Dataverse?color=20B2AA) 12 | ![GitHub Repo stars](https://img.shields.io/github/stars/multiverseweb/Dataverse) 13 | ![GitHub contributors](https://img.shields.io/github/contributors/multiverseweb/Dataverse) 14 | ![GitHub issues](https://img.shields.io/github/issues/multiverseweb/Dataverse) 15 | ![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/multiverseweb/Dataverse) 16 | ![GitHub forks](https://img.shields.io/github/forks/multiverseweb/Dataverse) 17 | ![GitHub pull requests](https://img.shields.io/github/issues-pr/multiverseweb/Dataverse) 18 | ![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/multiverseweb/Dataverse) 19 | ![GitHub last commit](https://img.shields.io/github/last-commit/multiverseweb/Dataverse) 20 | ![GitHub repo size](https://img.shields.io/github/repo-size/multiverseweb/Dataverse) 21 | ![GitHub total lines](https://sloc.xyz/github/multiverseweb/Dataverse) 22 | Website 23 | 24 | 25 | --- 26 | 27 | ### Table of Contents 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
About DataverseApplication PreviewVersionsRepository StructureUse DataverseMake ContributionsLinks
40 | 41 | --- 42 | 43 | ### Featured In 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
Event LogoEvent Name
SWOCSocial Winter of Code Season-5 (SWOC) 2024-2025
GSSoC Ext 24GirlScript Summer of Code Ext (GSSoC'24) 2024
Hacktoberfest 24Hacktober Fest 2024
63 | 64 | ### What does this software do? 65 | - Supports all data visualisation techniques, basic as well as advanced. 66 | - Generates interactive, customizable and exportable graphs. 67 | - Provides data storage for later use. 68 | - Supports data inputs from excel sheets. 69 | - Simplifies expense tracking and financial management. 70 | - Allows user to download financial reports. 71 | - Uses encryption techniques to securely store your passwords. 72 | - View and manage data via a mobile-friendly website. 73 | - Provides predictive analytics and trend analysis using ML techniques. 74 | 75 | --- 76 | 77 | ### Preview 78 |
79 | 80 | Software GUI 81 |
82 | 83 |

84 |
85 |

View More


86 | Software Home Page 87 |
88 | 89 |

90 | Visualised Data 91 |
92 | 93 |

94 | Stored Data 95 |
96 | 97 |
98 |
99 | 100 | --- 101 | 102 | ### Versions 103 | 104 | | Version | Description | 105 | |-------------|-----------------| 106 | | v.XM45.24 `Under Development` | High scale installable vesrion currently being developed, has improved UI based on glassmorphism. Makes the project mobile-friendly and provides more analytical features. Seeks major contributions through SWOC-S5. | 107 | | v.6550.24 `Latest` | Current stable version that supports most of the data visualisation techniques and finance tracking. Major development done during GSSoC'24. | 108 | | v.06.02.24 | Initial version developed on 6th February, 2024. Only supports finance tracking. | 109 | 110 | --- 111 | 112 | ### Repository Structure 113 | 114 | | [**📂 View _Repository Structure_**](/Documentation/PROJECT_STRUCTURE.md) | 115 | |-| 116 | 117 | --- 118 | 119 | ### Deployment Specifications 120 | I. Navigate to the directory where you want to deploy the dataverse application and open terminal or command prompt there. 121 | 122 | II. Run the following commands in terminal: 123 | 124 | > ``` 125 | > git clone https://github.com/multiverseweb/Dataverse.git 126 | > ``` 127 | 128 | III. Create a Virtual Environment (optional but recommended) 129 | - On Windows: 130 | 131 | ``` 132 | python -m venv venv 133 | venv\Scripts\activate 134 | ``` 135 | 136 | - On macOS/Linux: 137 | 138 | ``` 139 | python3 -m venv venv 140 | source venv/bin/activate 141 | ``` 142 | 143 | IV. Install dependencies: 144 | 145 | > ``` 146 | > cd Dataverse 147 | > ``` 148 | > ``` 149 | > pip install -r installation/requirements.txt 150 | > ``` 151 | 152 | V. Install MySQL if you don't have it already from [here](https://dev.mysql.com/downloads/installer/). 153 | 154 | > [!IMPORTANT] 155 | > Change the values of `DB_HOST`, `DB_USER` and `DB_PASSWORD` in [software/db_config.py](software/db_config.py) file according to your MySQL account. 156 | 157 | VI. Run the application: 158 | 159 | > ``` 160 | > python software/main.py 161 | > ``` 162 | 163 | VII. To Run `index.html` (For Website Development) 164 | 165 | 1. Install the **Go Live** extension in VS Code. 166 | 2. Open the `index.html` file in VS Code. 167 | 3. Click on the **Go Live** button in the bottom-right corner of VS Code. 168 | 169 | > The default URL will be: 170 | > `http://localhost:5500/Dataverse/index.html` 171 | 172 | Now, the software should run smoothly with no errors, feel free to use the software and don't forget to give feedback on [Dataverse's website](https://multiverse-dataverse.netlify.app/)! 173 | 174 | --- 175 | 176 | ### Star History 177 | 178 | 179 | 185 | 186 | 192 | Star History Chart 196 | 197 | 198 | --- 199 | 200 | ### Contributions 201 | 202 | Want to make contributions to this project? ✨ 203 | 204 | | **[Read _contribution guidelines!_](Documentation/contributing.md)** | 205 | |-| 206 | 207 | --- 208 | 209 | ### Our Valuable Contributors ❤️ 210 | 211 | [![Contributors](https://contrib.rocks/image?repo=multiverseweb/Dataverse)](https://github.com/multiverseweb/Dataverse/graphs/contributors) 212 | 213 | ### Stargazers ⭐ 214 | 215 |
216 | 217 | [![Stargazers repo roster for @multiverseweb/Dataverse](https://reporoster.com/stars/dark/multiverseweb/Dataverse)](https://github.com/multiverseweb/Dataverse/stargazers) 218 | 219 |
220 | 221 | ### Forkers 🍴 222 | 223 | [![Forkers repo roster for @multiverseweb/Dataverse](https://reporoster.com/forks/dark/multiverseweb/Dataverse)](https://github.com/multiverseweb/Dataverse/network/members) 224 | 225 | --- 226 | 227 | ### Links 228 | |||||[Multiverse](https://github.com/Multiverse-Web) 229 | |-|-|-|-|-| 230 | 231 | Back to top 232 | 233 | ``` 234 | 235 | ``` 236 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Dataverse's Security Policies and Procedures 2 | 3 | This document outlines security procedures and general policies for the 4 | Dataverse project. 5 | 6 | - [Reporting a Vulnerability](#reporting-a-vulnerability) 7 | - [Disclosure Policy](#disclosure-policy) 8 | 9 | ## Reporting a Vulnerability 10 | 11 | The Dataverse team and community takes all security vulnerabilities 12 | seriously. Thank you for improving the security of our open source 13 | software. We appreciate your efforts and responsible disclosure and will 14 | make every effort to acknowledge your contributions. 15 | 16 | Report security vulnerabilities by emailing the Dataverse team at: 17 | 18 | ``` 19 | multiverse.letter@gmail.com 20 | ``` 21 | 22 | The lead maintainer will acknowledge your email within 24 hours and will 23 | send a more detailed response within 48 hours indicating the next steps in 24 | handling your report. After the initial reply to your report, the security 25 | team will endeavor to keep you informed of the progress towards a fix and 26 | full announcement, and may ask for additional information or guidance. 27 | 28 | Report security vulnerabilities in third-party modules to the person or 29 | team maintaining the module. 30 | 31 | ## Disclosure Policy 32 | 33 | When the security team receives a security bug report, they will assign it 34 | to a primary handler. This person will coordinate the fix and release 35 | process, involving the following steps: 36 | 37 | * Confirm the problem. 38 | * Audit code to find any potential similar problems. 39 | * Prepare fixes and release them as fast as possible. -------------------------------------------------------------------------------- /appconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/appconfig -------------------------------------------------------------------------------- /documentation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 77 | Dataverse | Documentation 78 | 79 | 80 | 81 | 91 | 92 | 93 | 94 |
95 |
96 |
97 |
98 |
99 |
100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 |
130 |
131 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /google71823fe3658f34e4.html: -------------------------------------------------------------------------------- 1 | google-site-verification: google71823fe3658f34e4.html -------------------------------------------------------------------------------- /installation/requirements.txt: -------------------------------------------------------------------------------- 1 | PIL 2 | time 3 | numpy 4 | ctypes 5 | tkinter 6 | datetime 7 | tabulate 8 | functools 9 | webbrowser 10 | matplotlib 11 | customtkinter 12 | mysql.connector 13 | matplotlib.pyplot 14 | matplotlib.gridspec 15 | matplotlib.widgets 16 | mpl_toolkits.mplot3d -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | https://multiverse-dataverse.netlify.app/website/pages/license 8 | 2024-12-03 9 | daily 10 | 0.8 11 | 12 | 13 | 14 | https://multiverse-dataverse.netlify.app/website/pages/reviews 15 | 2024-12-03 16 | daily 17 | 0.8 18 | 19 | 20 | 21 | https://multiverse-dataverse.netlify.app/sitemap.xml 22 | 2024-12-03 23 | daily 24 | 0.8 25 | 26 | 27 | 28 | https://multiverse-dataverse.netlify.app/documentation 29 | 2024-12-03 30 | daily 31 | 0.8 32 | 33 | 34 | 35 | https://multiverse-dataverse.netlify.app/ 36 | 2024-12-03 37 | daily 38 | 0.8 39 | 40 | 41 | 42 | https://multiverse-dataverse.netlify.app/website/pages/signup 43 | 2024-12-03 44 | daily 45 | 0.8 46 | 47 | 48 | 49 | https://multiverse-dataverse.netlify.app/website/pages/contributor 50 | 2024-12-03 51 | daily 52 | 0.8 53 | 54 | 55 | 56 | https://multiverse-dataverse.netlify.app/website/pages/login 57 | 2024-12-03 58 | daily 59 | 0.8 60 | 61 | 62 | 63 | https://multiverse-dataverse.netlify.app/website/pages/support 64 | 2024-12-03 65 | daily 66 | 0.8 67 | 68 | 69 | 70 | https://multiverse-dataverse.netlify.app/404 71 | 2024-12-03 72 | daily 73 | 0.8 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /software/__pycache__/dataVisualization.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/dataVisualization.cpython-311.pyc -------------------------------------------------------------------------------- /software/__pycache__/db_config.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/db_config.cpython-312.pyc -------------------------------------------------------------------------------- /software/__pycache__/financeTracker.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/financeTracker.cpython-311.pyc -------------------------------------------------------------------------------- /software/__pycache__/functions.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/functions.cpython-311.pyc -------------------------------------------------------------------------------- /software/__pycache__/main.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/main.cpython-311.pyc -------------------------------------------------------------------------------- /software/__pycache__/mainGUI.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/mainGUI.cpython-311.pyc -------------------------------------------------------------------------------- /software/__pycache__/manage_data.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/manage_data.cpython-312.pyc -------------------------------------------------------------------------------- /software/__pycache__/plot.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/plot.cpython-311.pyc -------------------------------------------------------------------------------- /software/__pycache__/report.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/__pycache__/report.cpython-311.pyc -------------------------------------------------------------------------------- /software/database.sql: -------------------------------------------------------------------------------- 1 | -- Create the database if it does not exists 2 | CREATE DATABASE IF NOT EXISTS dataverse; 3 | USE dataverse; 4 | 5 | -- Create the users table if it does not exist 6 | CREATE TABLE users ( 7 | u_id BIGINT NOT NULL PRIMARY KEY, 8 | u_name VARCHAR(255) DEFAULT NULL, 9 | pwd VARCHAR(255) DEFAULT NULL, 10 | country VARCHAR(50) DEFAULT 'India' 11 | ); 12 | 13 | 14 | CREATE TABLE finance ( 15 | u_id BIGINT DEFAULT NULL, 16 | salary FLOAT DEFAULT 0, 17 | gold FLOAT DEFAULT 0, 18 | stocks FLOAT DEFAULT 0, 19 | commodity FLOAT DEFAULT 0, 20 | sales FLOAT DEFAULT 0, 21 | expenditure FLOAT DEFAULT 0, 22 | total FLOAT GENERATED ALWAYS AS (salary + gold + stocks + commodity + sales - expenditure) STORED, 23 | entryDate DATE DEFAULT NULL 24 | ); 25 | -------------------------------------------------------------------------------- /software/db_config.py: -------------------------------------------------------------------------------- 1 | DB_HOST = "localhost" 2 | DB_USER = "root" 3 | DB_PASSWORD = "tejas123" -------------------------------------------------------------------------------- /software/images/dark/2dlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/2dlogo.png -------------------------------------------------------------------------------- /software/images/dark/3dScatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/3dScatter.png -------------------------------------------------------------------------------- /software/images/dark/3dlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/3dlogo.png -------------------------------------------------------------------------------- /software/images/dark/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/add.png -------------------------------------------------------------------------------- /software/images/dark/area_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/area_chart.png -------------------------------------------------------------------------------- /software/images/dark/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/background.png -------------------------------------------------------------------------------- /software/images/dark/bar_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/bar_graph.png -------------------------------------------------------------------------------- /software/images/dark/delete-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/delete-user.png -------------------------------------------------------------------------------- /software/images/dark/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/delete.png -------------------------------------------------------------------------------- /software/images/dark/equation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/equation.png -------------------------------------------------------------------------------- /software/images/dark/finance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/finance.png -------------------------------------------------------------------------------- /software/images/dark/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/globe.png -------------------------------------------------------------------------------- /software/images/dark/heatmap_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/heatmap_plot.png -------------------------------------------------------------------------------- /software/images/dark/histogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/histogram.png -------------------------------------------------------------------------------- /software/images/dark/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/home.png -------------------------------------------------------------------------------- /software/images/dark/line_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/line_graph.png -------------------------------------------------------------------------------- /software/images/dark/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/logout.png -------------------------------------------------------------------------------- /software/images/dark/mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/mode.png -------------------------------------------------------------------------------- /software/images/dark/pie_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/pie_chart.png -------------------------------------------------------------------------------- /software/images/dark/polarScatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/polarScatter.png -------------------------------------------------------------------------------- /software/images/dark/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/preview.png -------------------------------------------------------------------------------- /software/images/dark/radar_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/radar_chart.png -------------------------------------------------------------------------------- /software/images/dark/scatter_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/scatter_plot.png -------------------------------------------------------------------------------- /software/images/dark/surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/surface.png -------------------------------------------------------------------------------- /software/images/dark/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/user.png -------------------------------------------------------------------------------- /software/images/dark/view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/view.png -------------------------------------------------------------------------------- /software/images/dark/visualization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/dark/visualization.png -------------------------------------------------------------------------------- /software/images/light/2dlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/2dlogo.png -------------------------------------------------------------------------------- /software/images/light/3dScatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/3dScatter.png -------------------------------------------------------------------------------- /software/images/light/3dlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/3dlogo.png -------------------------------------------------------------------------------- /software/images/light/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/add.png -------------------------------------------------------------------------------- /software/images/light/area_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/area_chart.png -------------------------------------------------------------------------------- /software/images/light/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/background.png -------------------------------------------------------------------------------- /software/images/light/bar_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/bar_graph.png -------------------------------------------------------------------------------- /software/images/light/delete-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/delete-user.png -------------------------------------------------------------------------------- /software/images/light/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/delete.png -------------------------------------------------------------------------------- /software/images/light/equation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/equation.png -------------------------------------------------------------------------------- /software/images/light/finance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/finance.png -------------------------------------------------------------------------------- /software/images/light/globe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/globe.png -------------------------------------------------------------------------------- /software/images/light/heatmap_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/heatmap_plot.png -------------------------------------------------------------------------------- /software/images/light/histogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/histogram.png -------------------------------------------------------------------------------- /software/images/light/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/home.png -------------------------------------------------------------------------------- /software/images/light/line_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/line_graph.png -------------------------------------------------------------------------------- /software/images/light/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/logout.png -------------------------------------------------------------------------------- /software/images/light/mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/mode.png -------------------------------------------------------------------------------- /software/images/light/pie_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/pie_chart.png -------------------------------------------------------------------------------- /software/images/light/polarScatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/polarScatter.png -------------------------------------------------------------------------------- /software/images/light/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/preview.png -------------------------------------------------------------------------------- /software/images/light/radar_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/radar_chart.png -------------------------------------------------------------------------------- /software/images/light/scatter_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/scatter_plot.png -------------------------------------------------------------------------------- /software/images/light/surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/surface.png -------------------------------------------------------------------------------- /software/images/light/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/user.png -------------------------------------------------------------------------------- /software/images/light/view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/view.png -------------------------------------------------------------------------------- /software/images/light/visualization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/software/images/light/visualization.png -------------------------------------------------------------------------------- /software/report.py: -------------------------------------------------------------------------------- 1 | import mysql.connector 2 | from fpdf import FPDF 3 | import matplotlib.pyplot as plt 4 | from datetime import date 5 | import os 6 | import seaborn as sns 7 | import matplotlib.dates as mdates 8 | 9 | # Function to fetch data from the database 10 | def fetch_data_from_db(username): 11 | try: 12 | # Connect to MySQL database 13 | connection = mysql.connector.connect( 14 | host="localhost", 15 | user="root", 16 | password="ananyavastare2345", 17 | database="finance_data", 18 | ) 19 | cursor = connection.cursor(dictionary=True) 20 | 21 | # Fetch user data 22 | cursor.execute("SELECT user_id FROM user WHERE username = %s", (username,)) 23 | user = cursor.fetchone() 24 | 25 | if user: 26 | user_id = user["user_id"] 27 | 28 | # Ensure all results are fetched or cleared before running the next query 29 | cursor.fetchall() # Add this to avoid unread results 30 | 31 | # Fetch income data for the user 32 | cursor.execute( 33 | """ 34 | SELECT income_source, amount, date_received 35 | FROM income 36 | WHERE user_id = %s 37 | """, 38 | (user_id,), 39 | ) 40 | income_data = cursor.fetchall() 41 | 42 | # Organize data by income source 43 | data_by_source = {} 44 | for row in income_data: 45 | source = row["income_source"] 46 | if source not in data_by_source: 47 | data_by_source[source] = {"dates": [], "amounts": []} 48 | data_by_source[source]["dates"].append(row["date_received"]) 49 | data_by_source[source]["amounts"].append(row["amount"]) 50 | 51 | return data_by_source 52 | else: 53 | print(f"User {username} not found.") 54 | return None 55 | 56 | except mysql.connector.Error as err: 57 | print(f"Error: {err}") 58 | return None 59 | 60 | finally: 61 | if cursor: 62 | cursor.close() # Close the cursor 63 | if connection: 64 | connection.close() # Close the connection 65 | 66 | 67 | # Function to create a combined pie and line chart for the income data 68 | def create_combined_chart(income_data, plot_path="combined_plot.png"): 69 | # Prepare labels and amounts for the pie chart 70 | labels = list(income_data.keys()) 71 | amounts = [sum(data["amounts"]) for data in income_data.values()] 72 | colors = sns.color_palette("pastel", len(labels)) 73 | 74 | fig, axs = plt.subplots(1, 2, figsize=(15, 6)) 75 | 76 | # Create Pie chart to show income distribution 77 | axs[0].pie( 78 | amounts, 79 | labels=labels, 80 | autopct="%1.1f%%", 81 | startangle=140, 82 | colors=colors, 83 | shadow=True, 84 | ) 85 | axs[0].set_title("Income Sources Distribution") 86 | axs[0].axis("equal") 87 | 88 | # Create Line chart to show income amounts over time 89 | for label, values in income_data.items(): 90 | axs[1].plot( 91 | values["dates"], 92 | values["amounts"], 93 | marker="o", 94 | linestyle="-", 95 | linewidth=2, 96 | label=label, 97 | ) 98 | axs[1].set_title("Income Sources Over Time") 99 | axs[1].set_xlabel("Date") 100 | axs[1].set_ylabel("Amount ($)") 101 | axs[1].grid(True) 102 | axs[1].legend(loc="upper left") 103 | axs[1].xaxis.set_major_locator(mdates.MonthLocator()) 104 | axs[1].xaxis.set_major_formatter(mdates.DateFormatter('%b %d, %Y')) 105 | plt.xticks(rotation=45) 106 | 107 | # Adjust layout and save the combined plot 108 | plt.tight_layout() 109 | plt.savefig(plot_path) 110 | plt.close() 111 | 112 | 113 | # Function to save the financial report as a PDF 114 | def save_report(u_name, plot_path="combined_plot.png"): 115 | pdf = FPDF() 116 | pdf.add_page() 117 | pdf.set_font("Times", size=12) 118 | 119 | # Add title and user details to the PDF 120 | pdf.cell(200, 10, txt="Dataverse Financial Report", ln=1, align="C") 121 | pdf.cell(200, 10, txt="Date: {}".format(date.today()), ln=1, align="L") 122 | pdf.cell(200, 10, txt="User: {}".format(u_name), ln=1, align="L") 123 | 124 | # Add the combined plot image if it exists 125 | if os.path.exists(plot_path): 126 | pdf.image(plot_path, x=10, y=40, w=190, h=120) 127 | 128 | # Save the PDF file with a dynamic name (username and current date) 129 | pdf_file_name = f"{u_name}-{date.today()}-Dataverse.pdf" 130 | pdf.output(pdf_file_name) 131 | print(f"PDF saved as: {pdf_file_name}") 132 | 133 | 134 | # Main function to run the report generation 135 | def main(): 136 | username = input("Enter the username:") # Get the username input from the user 137 | income_data = fetch_data_from_db(username) 138 | 139 | if income_data: 140 | # Create charts from the fetched income data 141 | create_combined_chart(income_data) 142 | 143 | # Generate and save the PDF report 144 | save_report(username) 145 | else: 146 | print(f"No income data found for {username}.") 147 | 148 | 149 | # Run the main function when the script is executed 150 | if __name__ == "__main__": 151 | main() 152 | -------------------------------------------------------------------------------- /website/pages/contributor.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Dataverse's Contributors 8 | 9 | 10 | 11 | 12 | 13 | 14 | 24 | 25 | 26 | 27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
Home
Documentation
Versions
Support
Contributors
Reviews
License
Stunning Visuals
Github Repository
63 |
64 | 65 |
66 |
67 | 68 | 69 |
70 |

Dataverse's Contributors Statistics

71 |
72 | 73 |
74 |
75 | 76 | 77 |
78 |

Meet Our Contributors

79 |
80 | 81 |
82 |
83 |
84 |
85 |
86 |
87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /website/pages/license.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Dataverse | License 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 21 | 25 | 28 | 29 |
30 |
31 | 41 | 42 | 43 | 44 |
45 |
46 |
47 |
48 |
49 |
50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 |
Home
Documentation
Versions
Support
Contributors
Reviews
License
Stunning Visuals
Github Repository
79 |
80 | 81 |
82 |
83 |

CC BY-NC-ND 4.0 License

84 |
85 |
86 |

Copyright © 32949832 Tejas Gupta

87 |
88 |
89 | 90 |
91 |
92 | 100 | 101 | 102 | 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /website/pages/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Login to Dataverse 10 | 100 | 101 | 102 | 103 | login_bg 104 | login_bg 105 | Dataverse Logo 106 |
107 | 139 | 140 |
141 | 152 | 153 | 273 | 274 | 275 | 276 | -------------------------------------------------------------------------------- /website/pages/reviews.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | Dataverse Reviews 12 | 13 | 14 | 18 | 19 | 20 | 46 | 47 | 48 |
49 |
50 |
51 |
52 |
53 |
54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
Home
Documentation
Versions
Support
Contributors
Reviews
License
Stunning Visuals
Github Repository
83 |
84 | 85 |
86 |

Dataverse Reviews

87 |
88 |
89 | 90 |
91 |
92 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /website/pages/support.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Dataverse | Support 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 19 | 21 | 22 | 23 | 24 |
25 |
26 |
27 |
28 |
29 | 32 | 38 |
39 | 42 |
43 | 44 | 56 | 57 | 58 | 59 |
60 |
61 |
62 |
63 |
64 |
65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 93 | 94 |
Home
Documentation
Versions
Support
Contributors
Reviews
License
Stunning Visuals
Github 92 | Repository
95 |
96 |
97 | 98 |
99 | 106 | 109 |
110 | 111 |

Frequently Asked Questions

112 |
113 | What is Dataverse? 114 |

Dataverse is an open-source software platform designed for tracking finances, visualizing data, 115 | and integrating database management. It provides powerful tools for data visualization and 116 | storage.

117 |
118 |
119 | What features does Dataverse offer? 120 |

Dataverse offers features such as data visualization, financial tracking, chart generation, and 121 | secure storage. It also allows users to download generated charts and manage data for future 122 | use.

123 |
124 |
125 | Is Dataverse free to use? 126 |

Yes, Dataverse is open-source and free to use. You can contribute to its development on GitHub. 127 |

128 |
129 |
130 | How can I contribute to Dataverse? 131 |

You can contribute by visiting the official Dataverse repository on GitHub and following the 132 | contribution guidelines. We welcome developers, testers, and documentation writers.

133 |
134 |
135 | Where can I get support for using Dataverse? 136 |

Support is available through our GitHub discussions page, community forums, and documentation. 137 | Feel free to reach out for help!

138 |
139 |
140 |
141 |
142 |

Encountered an Issue?

143 | 144 | 145 |
146 |
147 |

Still have Doubts?

148 | 149 | 150 |
151 |
152 |
153 |

Support the Development of Dataverse

154 | As an open-source initiative, we depend on community support to sustain and enhance the project. Your 155 | contributions will help us: 156 |
    157 |
  • Develop New Features
  • 158 |
  • Improve User Experience
  • 159 |
  • Maintain the Platform
  • 160 |
  • Foster Community Growth
  • 161 |
  • Develop More Such Software
  • 162 |
163 | 178 |
179 |
180 |
181 |
183 | 188 | 198 | 201 | 204 | 208 |
209 |
210 | 211 | 212 | 213 | 214 | 215 | 216 | -------------------------------------------------------------------------------- /website/pages/versions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Dataverse | Versions 10 | 22 | 23 | 24 | 25 | 26 | 37 | 38 | 39 | 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 51 | 57 |
58 | 61 |
62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 |
Home
Documentation
Versions
Support
Contributors
Reviews
License
Stunning Visuals
Github Repository
92 |
93 |

Dataverse VERSIONS

94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 |
VersionDescription
v.XM45.24 Under DevelopmentHigh scale installable version currently being developed. It has an improved UI based on glassmorphism, making the project mobile-friendly and providing more analytical features. This version seeks major contributions through SWOC-S5.
v.6550.24 LatestCurrent stable version that supports most of the data visualization techniques and finance tracking. Major development done during GSSoC'24.
v.06.02.24Initial version developed on 6th February, 2024. Only supports finance tracking.
116 | 117 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /website/scripts/beautifyReviews.js: -------------------------------------------------------------------------------- 1 | fetch('../scripts/reviews.json') 2 | .then(response => response.json()) 3 | .then(data => { 4 | const averageRating = calculateAverageRating(data); 5 | displayAverageRating(averageRating); 6 | displayReviews(data); 7 | }) 8 | .catch(error => console.error("Error loading reviews:", error)); 9 | 10 | // Function to calculate the average rating 11 | function calculateAverageRating(reviews) { 12 | let totalRating = 0; 13 | reviews.forEach(review => { 14 | const rating = parseFloat(review.human_fields['★']); // Get rating from human_fields 15 | totalRating += rating; 16 | }); 17 | const average = totalRating / reviews.length; 18 | return average; 19 | } 20 | 21 | // Function to display the average rating at the top 22 | function displayAverageRating(average) { 23 | const averageRatingContainer = document.getElementById('average-rating'); 24 | 25 | // Create an element to show the average rating 26 | const ratingText = document.createElement('div'); 27 | ratingText.classList.add('average-rating-text'); 28 | ratingText.textContent = `Average Rating: ${average.toFixed(1)} / 5`; // Show rounded average 29 | 30 | const starRating = document.createElement('div'); 31 | starRating.classList.add('average-star-rating'); 32 | 33 | // Calculate the number of full and half stars 34 | const fullStars = Math.floor(average); // Full stars (rounded down) 35 | const hasHalfStar = (average % 1) >= 0.5; // Check if half star is needed 36 | 37 | // Add the correct number of full stars 38 | for (let i = 0; i < fullStars; i++) { 39 | const star = document.createElement('stars'); 40 | star.classList.add('filled'); 41 | star.textContent = '★'; // Filled star symbol 42 | starRating.appendChild(star); 43 | } 44 | 45 | // Add half star if needed 46 | if (hasHalfStar) { 47 | const halfStar = document.createElement('stars'); 48 | halfStar.classList.add('half'); 49 | halfStar.textContent = '★'; // Half star symbol (using a filled star with CSS) 50 | starRating.appendChild(halfStar); 51 | } 52 | 53 | 54 | const empty = document.createElement('empty'); 55 | empty.classList.add('empty'); 56 | const emptyStars = 5 - Math.ceil(average) + 1; // Remaining empty stars 57 | for (let i = 0; i < emptyStars; i++) { 58 | const star = document.createElement('stars'); 59 | star.textContent = '✰'; // Empty star symbol 60 | empty.appendChild(star); 61 | starRating.appendChild(empty); 62 | } 63 | 64 | averageRatingContainer.appendChild(ratingText); 65 | averageRatingContainer.appendChild(starRating); 66 | } 67 | 68 | 69 | function displayReviews(reviews) { 70 | const reviewsContainer = document.getElementById('reviews-container'); 71 | reviews.forEach(review => { 72 | // Create review elements 73 | const reviewDiv = document.createElement('div'); 74 | reviewDiv.classList.add('review'); 75 | 76 | // Review Header (Name) 77 | const reviewHeader = document.createElement('div'); 78 | reviewHeader.classList.add('review-header'); 79 | 80 | const name = document.createElement('h3'); 81 | name.textContent = review.name; // Name of the reviewer 82 | reviewHeader.appendChild(name); 83 | 84 | reviewDiv.appendChild(reviewHeader); 85 | 86 | // Review Content (Message) 87 | const reviewContent = document.createElement('div'); 88 | reviewContent.classList.add('review-content'); 89 | reviewContent.innerHTML = review.body; // Display the message in HTML 90 | reviewDiv.appendChild(reviewContent); 91 | 92 | const rawDate = new Date(review.created_at); 93 | const formattedDate = rawDate.toLocaleDateString('en-GB', { 94 | day: '2-digit', 95 | month: 'short', 96 | year: 'numeric', 97 | }); 98 | 99 | const date = document.createElement('p'); 100 | date.classList.add('review-date'); 101 | date.textContent = formattedDate; 102 | 103 | // Review Footer (Rating) 104 | const reviewFooter = document.createElement('div'); 105 | reviewFooter.classList.add('review-footer'); 106 | 107 | const starRating = document.createElement('div'); 108 | starRating.classList.add('star-rating'); 109 | 110 | // Extract the rating from "human_fields" (stored as a string) 111 | const stars = parseInt(review.human_fields['★']); // Convert the rating string to an integer 112 | 113 | // Add the correct number of stars (only filled stars) 114 | for (let i = 0; i < stars; i++) { 115 | const star = document.createElement('star'); 116 | star.textContent = '★'; // Filled star symbol 117 | starRating.appendChild(star); 118 | } 119 | reviewFooter.appendChild(date); 120 | 121 | reviewFooter.appendChild(starRating); 122 | 123 | reviewDiv.appendChild(reviewFooter); 124 | 125 | // Append review to container 126 | reviewsContainer.appendChild(reviewDiv); 127 | }); 128 | } 129 | 130 | document.getElementById("reviews-container").onmousemove = e => { 131 | for(const card of document.getElementsByClassName("review")){ 132 | const rect = card.getBoundingClientRect(); 133 | const x = e.clientX - rect.left; 134 | const y = e.clientY - rect.top; 135 | card.style.setProperty("--mouse-x", `${x}px`); 136 | card.style.setProperty("--mouse-y", `${y}px`); 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /website/scripts/contributor.js: -------------------------------------------------------------------------------- 1 | // Fetch data from GitHub API 2 | async function fetchData() { 3 | const contributorsData = []; 4 | const repoStatsUrl = 'https://api.github.com/repos/multiverseweb/Dataverse'; 5 | let page = 1; 6 | let isFetching = true; 7 | 8 | try { 9 | const repoResponse = await fetch(repoStatsUrl); 10 | const repoData = await repoResponse.json(); 11 | while (isFetching) { 12 | const contributorsResponse = await fetch(`${repoStatsUrl}/contributors?per_page=100&page=${page}`); 13 | const pageData = await contributorsResponse.json(); 14 | 15 | if (!contributorsResponse.ok || pageData.length === 0) { 16 | isFetching = false; 17 | } else { 18 | contributorsData.push(...pageData); 19 | page++; // Move to the next page 20 | } 21 | } 22 | 23 | return { contributors: contributorsData, repoStats: repoData }; 24 | } catch (error) { 25 | console.error('Error fetching data:', error); 26 | return { contributors: [], repoStats: {} }; 27 | } 28 | } 29 | 30 | let lastScroll = 0; 31 | function progress() { 32 | var scroll = this.scrollY; 33 | var scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; 34 | var percent = Math.round((scroll / scrollHeight) * 100); 35 | document.getElementById("progress_bar").style.width = percent + 'vw'; 36 | }; 37 | 38 | window.addEventListener("scroll", progress); 39 | 40 | // Render stats 41 | function renderStats(repoStats, contributers) { 42 | const statsGrid = document.getElementById('statsGrid'); 43 | const stats = [ 44 | { label: 'Contributors', value: contributers?.length, icon: 'users' }, 45 | { label: 'Total Contributions', value: contributers?.reduce((sum, contributor) => sum + contributor.contributions, 0) || 0, icon: 'git-commit' }, 46 | { label: 'GitHub Stars', value: repoStats.stargazers_count || 0, icon: 'star' }, 47 | { label: 'Forks', value: repoStats.forks_count || 0, icon: 'git-branch' } 48 | ]; 49 | 50 | statsGrid.innerHTML = stats.map(stat => ` 51 |
52 |
${getIcon(stat.icon)}
53 |

${stat.value}

54 |

${stat.label}

55 |
56 | `).join(''); 57 | } 58 | 59 | // Render contributors 60 | function renderContributors(contributors) { 61 | const contributorsGrid = document.getElementById('contributorsGrid'); 62 | contributorsGrid.innerHTML = contributors.map(contributor => ` 63 |
64 | ${contributor.login} 65 |

${contributor.login}

66 |

${contributor.type}

67 |
${contributor.contributions} contributions
68 | 75 |
76 | `).join(''); 77 | } 78 | 79 | // Helper function to get icons (simplified version) 80 | function getIcon(name) { 81 | const icons = { 82 | 'users': '', 83 | 'git-commit': '', 84 | 'star': '', 85 | 'git-branch': '', 86 | 'external-link': '', 87 | 'github': '' 88 | }; 89 | return icons[name] || ''; 90 | } 91 | 92 | // Initialize the page 93 | async function init() { 94 | const loading = document.getElementById('loading'); 95 | const contributorsGrid = document.getElementById('contributorsGrid'); 96 | 97 | loading.style.display = 'flex'; 98 | contributorsGrid.style.display = 'none'; 99 | 100 | const { contributors, repoStats } = await fetchData(); 101 | 102 | renderStats(repoStats, contributors); 103 | renderContributors(contributors); 104 | 105 | loading.style.display = 'none'; 106 | contributorsGrid.style.display = 'grid'; 107 | } 108 | 109 | 110 | // Scroll to contribute section 111 | function scrollToContribute() { 112 | document.getElementById('contribute').scrollIntoView({ behavior: 'smooth' }); 113 | } 114 | 115 | // Initialize the page when the DOM is loaded 116 | document.addEventListener('DOMContentLoaded', init); 117 | 118 | window.addEventListener("scroll", function () { 119 | const scrollable = document.querySelector(".slow-scroll"); 120 | const scrollOffset = window.scrollY; 121 | scrollable.style.backgroundPosition = `center ${scrollOffset * -0.3}px`; 122 | }); 123 | 124 | 125 | function show() { 126 | l2.style.opacity = 0; 127 | l1.style.transform = "rotate(-45deg)"; 128 | l3.style.transform = "rotate(45deg)"; 129 | burger.style.display = "none"; 130 | cross.style.display = "block"; 131 | plane.style.right = 0; 132 | document.body.style.overflowY = "hidden"; 133 | } 134 | windowFunctions.push(show); 135 | 136 | function hide() { 137 | l2.style.opacity = 1; 138 | l1.style.transform = "rotate(0deg)"; 139 | l3.style.transform = "rotate(0deg)"; 140 | burger.style.display = "block"; 141 | cross.style.display = "none"; 142 | plane.style.right = "-100vw"; 143 | document.body.style.overflowY = "scroll"; 144 | } 145 | windowFunctions.push(hide); -------------------------------------------------------------------------------- /website/scripts/fetchReviews.js: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | import fetch from 'node-fetch'; 3 | 4 | const NETLIFY_API_URL = "https://api.netlify.com/api/v1"; 5 | const ACCESS_TOKEN = ""; // Replace with your token 6 | const SITE_ID = ""; // Replace with your form's ID 7 | 8 | async function fetchFormSubmissions() { 9 | try { 10 | const response = await fetch(`${NETLIFY_API_URL}/sites/${SITE_ID}/form_submissions`, { 11 | headers: { 12 | Authorization: `Bearer ${ACCESS_TOKEN}`, 13 | "Content-Type": "application/json", 14 | }, 15 | }); 16 | 17 | if (!response.ok) { 18 | throw new Error(`Failed to fetch submissions: ${response.statusText}`); 19 | } 20 | 21 | const submissions = await response.json(); 22 | 23 | // Write submissions to a JSON file 24 | fs.writeFileSync("reviews.json", JSON.stringify(submissions, null, 2)); 25 | 26 | console.log("Form submissions have been saved to reviews.json"); 27 | } catch (error) { 28 | console.error("Error fetching form submissions:", error); 29 | } 30 | } 31 | 32 | fetchFormSubmissions(); 33 | -------------------------------------------------------------------------------- /website/scripts/license.js: -------------------------------------------------------------------------------- 1 | // Selecting elements 2 | var l1 = document.getElementById("l1"); 3 | var l2 = document.getElementById("l2"); 4 | var l3 = document.getElementById("l3"); 5 | var burger = document.getElementById("burger"); 6 | var lines = document.getElementById("lines"); 7 | var cross = document.getElementById("cross"); 8 | var plane = document.getElementById("plane"); 9 | var body = document.getElementById("body"); 10 | var buttons = document.getElementById("buttons"); 11 | var indicator = document.getElementById("indicator"); 12 | var codeOfConductSection = document.getElementById("codeOfconduct"); 13 | 14 | // Adding error checking for missing elements 15 | if (!indicator) { 16 | console.error("Indicator element is missing"); 17 | } 18 | 19 | function show() { 20 | l2.style.opacity = 0; 21 | l1.style.transform = "rotate(-45deg)"; 22 | l3.style.transform = "rotate(45deg)"; 23 | burger.style.display = "none"; 24 | cross.style.display = "block"; 25 | plane.style.right = 0; 26 | body.style.overflowY = "hidden"; 27 | buttons.style.marginLeft = 0; 28 | } 29 | 30 | function hide() { 31 | l2.style.opacity = 1; 32 | l1.style.transform = "rotate(0deg)"; 33 | l3.style.transform = "rotate(0deg)"; 34 | burger.style.display = "block"; 35 | cross.style.display = "none"; 36 | plane.style.right = "-100vw"; 37 | body.style.overflowY = "scroll"; 38 | buttons.style.marginLeft = "-60px"; 39 | } 40 | 41 | function updateIndicator(button) { 42 | // Calculate the vertical adjustment for perfect centering of the indicator over the button 43 | const adjustment = (button.offsetHeight - indicator.offsetHeight) / 2; 44 | 45 | // Correct the top position based on the button's offsetTop value 46 | indicator.style.top = `${button.offsetTop + adjustment}px`; 47 | 48 | // Apply the correct glow effect based on the current theme 49 | const currentTheme = localStorage.getItem('theme'); 50 | if (currentTheme === 'light') { 51 | indicator.style.backgroundImage = "radial-gradient(circle, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0) 70%)"; // Black glow in light mode 52 | indicator.style.boxShadow = "none"; // No box-shadow needed for glow 53 | } else { 54 | indicator.style.backgroundImage = "radial-gradient(circle, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0) 70%)"; // White glow in dark mode 55 | indicator.style.boxShadow = "none"; // No box-shadow needed for glow 56 | } 57 | } 58 | 59 | 60 | 61 | function light(flag) { 62 | localStorage.setItem('theme', 'light'); 63 | body.style.backgroundColor = "white"; 64 | body.style.color = "black"; 65 | 66 | // If the codeOfConductSection is present, change its color 67 | if (codeOfConductSection) { 68 | codeOfConductSection.style.backgroundColor = "white"; 69 | codeOfConductSection.style.color = "black"; 70 | } 71 | 72 | const lightButton = document.getElementById("lightButton"); 73 | updateIndicator(lightButton); 74 | } 75 | 76 | function dark(flag) { 77 | localStorage.setItem('theme', 'dark'); 78 | body.style.backgroundColor = "black"; 79 | body.style.color = "white"; 80 | 81 | if (codeOfConductSection) { 82 | codeOfConductSection.style.backgroundColor = "black"; 83 | codeOfConductSection.style.color = "white"; 84 | } 85 | 86 | const darkButton = document.getElementById("darkButton"); 87 | updateIndicator(darkButton); 88 | } 89 | 90 | // Display the current year in the copyright section 91 | function displayCopyright() { 92 | const year = new Date().getFullYear(); 93 | document.getElementById("copyright").innerText = year; 94 | } 95 | 96 | function systemDefault() { 97 | const theme = localStorage.getItem('theme'); 98 | const defaultButton = document.getElementById("defaultButton"); 99 | displayCopyright(); 100 | if (theme === 'light') { 101 | light(true); 102 | updateIndicator(document.getElementById("lightButton")); 103 | } else if (theme === 'dark') { 104 | dark(true); 105 | updateIndicator(document.getElementById("darkButton")); 106 | } else { 107 | if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { 108 | dark(true); 109 | updateIndicator(document.getElementById("darkButton")); 110 | } else { 111 | light(true); 112 | updateIndicator(document.getElementById("lightButton")); 113 | } 114 | } 115 | } 116 | 117 | // Initialize the theme and indicator position on page load 118 | document.addEventListener("DOMContentLoaded", systemDefault); 119 | 120 | // Add event listeners to ensure the glow moves when buttons are clicked 121 | document.getElementById("lightButton").addEventListener("click", () => { 122 | light(false); 123 | }); 124 | document.getElementById("darkButton").addEventListener("click", () => { 125 | dark(false); 126 | }); 127 | document.getElementById("defaultButton").addEventListener("click", () => { 128 | systemDefault(); 129 | updateIndicator(document.getElementById("defaultButton")); 130 | }); 131 | -------------------------------------------------------------------------------- /website/scripts/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "scripts", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "node-fetch": "^3.3.2" 9 | } 10 | }, 11 | "node_modules/data-uri-to-buffer": { 12 | "version": "4.0.1", 13 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", 14 | "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 15 | "license": "MIT", 16 | "engines": { 17 | "node": ">= 12" 18 | } 19 | }, 20 | "node_modules/fetch-blob": { 21 | "version": "3.2.0", 22 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", 23 | "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", 24 | "funding": [ 25 | { 26 | "type": "github", 27 | "url": "https://github.com/sponsors/jimmywarting" 28 | }, 29 | { 30 | "type": "paypal", 31 | "url": "https://paypal.me/jimmywarting" 32 | } 33 | ], 34 | "license": "MIT", 35 | "dependencies": { 36 | "node-domexception": "^1.0.0", 37 | "web-streams-polyfill": "^3.0.3" 38 | }, 39 | "engines": { 40 | "node": "^12.20 || >= 14.13" 41 | } 42 | }, 43 | "node_modules/formdata-polyfill": { 44 | "version": "4.0.10", 45 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 46 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 47 | "license": "MIT", 48 | "dependencies": { 49 | "fetch-blob": "^3.1.2" 50 | }, 51 | "engines": { 52 | "node": ">=12.20.0" 53 | } 54 | }, 55 | "node_modules/node-domexception": { 56 | "version": "1.0.0", 57 | "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 58 | "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 59 | "funding": [ 60 | { 61 | "type": "github", 62 | "url": "https://github.com/sponsors/jimmywarting" 63 | }, 64 | { 65 | "type": "github", 66 | "url": "https://paypal.me/jimmywarting" 67 | } 68 | ], 69 | "license": "MIT", 70 | "engines": { 71 | "node": ">=10.5.0" 72 | } 73 | }, 74 | "node_modules/node-fetch": { 75 | "version": "3.3.2", 76 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", 77 | "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", 78 | "license": "MIT", 79 | "dependencies": { 80 | "data-uri-to-buffer": "^4.0.0", 81 | "fetch-blob": "^3.1.4", 82 | "formdata-polyfill": "^4.0.10" 83 | }, 84 | "engines": { 85 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 86 | }, 87 | "funding": { 88 | "type": "opencollective", 89 | "url": "https://opencollective.com/node-fetch" 90 | } 91 | }, 92 | "node_modules/web-streams-polyfill": { 93 | "version": "3.3.3", 94 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", 95 | "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", 96 | "license": "MIT", 97 | "engines": { 98 | "node": ">= 8" 99 | } 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /website/scripts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "dependencies": { 4 | "node-fetch": "^3.3.2" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /website/scripts/reviews.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "number": 52, 4 | "title": "Aarna", 5 | "email": "aarnagupta@gmail.con", 6 | "name": "Aarna", 7 | "first_name": "Aarna", 8 | "last_name": null, 9 | "company": null, 10 | "summary": "Aarna Really amazing software, I love the UI of the website as well as the software. Looking...", 11 | "body": "Really amazing software, I love the UI of the website as well as the software. Looking forward to more innovative features!", 12 | "data": { 13 | "Name": "Aarna", 14 | "Email": "aarnagupta@gmail.con", 15 | "Message": "Really amazing software, I love the UI of the website as well as the software. Looking forward to more innovative features!", 16 | "rating": "5", 17 | "ip": "103.81.39.69", 18 | "user_agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36", 19 | "referrer": "https://multiverse-dataverse.netlify.app/" 20 | }, 21 | "created_at": "2024-11-27T00:39:50.605Z", 22 | "human_fields": { 23 | "Name": "Aarna", 24 | "Email": "aarnagupta@gmail.con", 25 | "Message": "Really amazing software, I love the UI of the website as well as the software. Looking forward to more innovative features!", 26 | "★": "5" 27 | }, 28 | "ordered_human_fields": [ 29 | { 30 | "title": "Name", 31 | "name": "Name", 32 | "value": "Aarna" 33 | }, 34 | { 35 | "title": "Email", 36 | "name": "Email", 37 | "value": "aarnagupta@gmail.con" 38 | }, 39 | { 40 | "title": "Message", 41 | "name": "Message", 42 | "value": "Really amazing software, I love the UI of the website as well as the software. Looking forward to more innovative features!" 43 | }, 44 | { 45 | "title": "★", 46 | "name": "rating", 47 | "value": "5" 48 | } 49 | ], 50 | "id": "67466a56430b7e0b62e593db", 51 | "form_id": "663c29444c823b00087f8161", 52 | "site_url": "http://multiverse-dataverse.netlify.app", 53 | "site_name": "multiverse-dataverse", 54 | "form_name": "Dataverse Reviews" 55 | }, 56 | { 57 | "number": 9, 58 | "title": "Pooja Gupta", 59 | "email": "PoojanGmish1998@gmail.com", 60 | "name": "Pooja Gupta", 61 | "first_name": "Pooja", 62 | "last_name": "Gupta", 63 | "company": null, 64 | "summary": "Pooja Gupta nice! awesome!", 65 | "body": "nice! awesome!", 66 | "data": { 67 | "Name": "Pooja Gupta", 68 | "Email": "poojanimish1998@gmail.com", 69 | "Message": "nice! awesome!", 70 | "ip": "2405:201:6805:d1bb:6512:1643:5863:66de", 71 | "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36", 72 | "referrer": "https://multiverse-dataverse.netlify.app/" 73 | }, 74 | "created_at": "2024-06-11T04:34:47.589Z", 75 | "human_fields": { 76 | "Name": "Pooja Gupta", 77 | "Email": "poojanimish1998@gmail.com", 78 | "Message": "nice! awesome!", 79 | "★": "5" 80 | }, 81 | "ordered_human_fields": [ 82 | { 83 | "title": "Name", 84 | "name": "Name", 85 | "value": "Pooja Gupta" 86 | }, 87 | { 88 | "title": "Email", 89 | "name": "Email", 90 | "value": "poojanimish1998@gmail.com" 91 | }, 92 | { 93 | "title": "Message", 94 | "name": "Message", 95 | "value": "nice! awesome!" 96 | }, 97 | { 98 | "title": "★", 99 | "name": "rating", 100 | "value": "5" 101 | } 102 | ], 103 | "id": "6667d3e7fae9b500879448b0", 104 | "form_id": "663c29444c823b00087f8161", 105 | "site_url": "http://multiverse-dataverse.netlify.app", 106 | "site_name": "multiverse-dataverse", 107 | "form_name": "Dataverse Reviews" 108 | }, 109 | { 110 | "number": 8, 111 | "title": "Nimish Kumar Gupta", 112 | "email": "nimishgupta61@gmail.com", 113 | "name": "Nimish Kumar Gupta", 114 | "first_name": "Nimish", 115 | "last_name": "Gupta", 116 | "company": null, 117 | "summary": "Nimish Kumar Gupta you are amazing!", 118 | "body": "you are amazing!", 119 | "data": { 120 | "Name": "Nimish Kumar Gupta", 121 | "Email": "nimishgupta61@gmail.com", 122 | "Message": "you are amazing!", 123 | "ip": "2405:201:6805:d1bb:a897:77d2:34c2:799e", 124 | "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36", 125 | "referrer": "https://multiverse-dataverse.netlify.app/" 126 | }, 127 | "created_at": "2024-06-10T10:54:44.576Z", 128 | "human_fields": { 129 | "Name": "Nimish Kumar Gupta", 130 | "Email": "nimishgupta61@gmail.com", 131 | "Message": "you are amazing!", 132 | "★": "5" 133 | }, 134 | "ordered_human_fields": [ 135 | { 136 | "title": "Name", 137 | "name": "Name", 138 | "value": "Nimish Kumar Gupta" 139 | }, 140 | { 141 | "title": "Email", 142 | "name": "Email", 143 | "value": "nimishgupta61@gmail.com" 144 | }, 145 | { 146 | "title": "Message", 147 | "name": "Message", 148 | "value": "you are amazing!" 149 | }, 150 | { 151 | "title": "★", 152 | "name": "rating", 153 | "value": "5" 154 | } 155 | ], 156 | "id": "6666db748fe75800754362e2", 157 | "form_id": "663c29444c823b00087f8161", 158 | "site_url": "http://multiverse-dataverse.netlify.app", 159 | "site_name": "multiverse-dataverse", 160 | "form_name": "Dataverse Reviews" 161 | }, 162 | { 163 | "number": 5, 164 | "title": "Tejas Gupta", 165 | "email": "iamtejasgupta26@gmail.com", 166 | "name": "Tejas Gupta", 167 | "first_name": "Tejas", 168 | "last_name": "Gupta", 169 | "company": null, 170 | "summary": "Tejas Gupta Great! It's working!", 171 | "body": "Great! It's working!", 172 | "data": { 173 | "Name": "Tejas Gupta", 174 | "Email": "iamtejasgupta26@gmail.com", 175 | "Message": "Great! It's working!", 176 | "ip": "103.81.36.208", 177 | "user_agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36", 178 | "referrer": "https://multiverse-dataverse.netlify.app/" 179 | }, 180 | "created_at": "2024-05-09T02:30:30.575Z", 181 | "human_fields": { 182 | "Name": "Tejas Gupta", 183 | "Email": "iamtejasgupta26@gmail.com", 184 | "Message": "Great! It's working!", 185 | "★": "4" 186 | }, 187 | "ordered_human_fields": [ 188 | { 189 | "title": "Name", 190 | "name": "Name", 191 | "value": "Tejas Gupta" 192 | }, 193 | { 194 | "title": "Email", 195 | "name": "Email", 196 | "value": "iamtejasgupta26@gmail.com" 197 | }, 198 | { 199 | "title": "Message", 200 | "name": "Message", 201 | "value": "Great! It's working!" 202 | }, 203 | { 204 | "title": "★", 205 | "name": "rating", 206 | "value": "4" 207 | } 208 | ], 209 | "id": "663c3546b12912007d746b30", 210 | "form_id": "663c29444c823b00087f8161", 211 | "site_url": "http://multiverse-dataverse.netlify.app", 212 | "site_name": "multiverse-dataverse", 213 | "form_name": "Dataverse Reviews" 214 | } 215 | ] -------------------------------------------------------------------------------- /website/scripts/sharedUtilities.js: -------------------------------------------------------------------------------- 1 | var windowFunctions = []; 2 | 3 | function checkPurpose(purpose) { 4 | const modalPurposes = ['download dataverse', 'submit feedback', 'login/signup error', 'no reply']; 5 | return modalPurposes.includes(purpose); // Returns a boolean 6 | } 7 | 8 | 9 | export function showModal(message, purpose) { 10 | // Check if no modal purpose was provided 11 | if(purpose === undefined || purpose === '') { 12 | console.error(`Please provide a correct login purpose. See 'website/pages/scripts/sharedUtilities.js' => showModal`); 13 | } else { 14 | // Check whether the modal purpose is currently available 15 | if(!checkPurpose(purpose)) { 16 | console.error(`Modal purpose '${purpose}' is unavailable, See 'website/pages/scripts/sharedUtilities.js' => showModal`); 17 | return; 18 | } 19 | 20 | document.getElementById('modal').style.display = 'block'; 21 | document.getElementById('modal-message').innerText = message; 22 | document.getElementById('close-modal').style.display = 'block'; 23 | 24 | if(purpose === 'download dataverse') { 25 | // Check if the accept and close buttons has been already hidden 26 | if(document.getElementById('accept-modal').style.display === 'none') { 27 | document.getElementById('accept-modal').style.display = 'block'; 28 | 29 | document.getElementById('close-modal').innerText = 'later'; 30 | document.getElementById('modal-buttons').style.gap = '25%'; 31 | } 32 | } else if(purpose === 'submit feedback') { 33 | document.getElementById('accept-modal').style.display = 'none'; 34 | document.getElementById('close-modal').innerText = 'close'; 35 | document.getElementById('modal-buttons').style.gap = '0'; 36 | } else if(purpose === 'login/signup error') { 37 | document.getElementById('accept-modal').style.display = 'none'; 38 | document.getElementById('close-modal').innerText = 'Got it!'; 39 | document.getElementById('modal-buttons').style.gap = '0'; 40 | } else if(purpose === 'no reply') { 41 | document.getElementById('accept-modal').style.display = 'none'; 42 | document.getElementById('close-modal').style.display = 'none'; 43 | } 44 | } 45 | } 46 | windowFunctions.push(showModal); 47 | 48 | export function closeModal() { 49 | document.getElementById('modal').style.display = 'none'; 50 | } 51 | windowFunctions.push(closeModal); 52 | 53 | // Since this script is a module type, functions won't be accessible to the DOM by default, this function attaches all 54 | // the functions that are needed for the DOM. 55 | export function attachToWindow(arr) { 56 | arr.forEach((func) => { 57 | const funcName = func.name 58 | window[`${funcName}`] = func; // Attach function to the window 59 | }) 60 | } 61 | 62 | // Attach the functions to the Global scope of the HTML, so it can be used on the 'onclick' attributes 63 | window.showModal = showModal; 64 | window.closeModal = closeModal; 65 | 66 | window.onload = function() { 67 | attachToWindow(windowFunctions); 68 | } -------------------------------------------------------------------------------- /website/scripts/support.js: -------------------------------------------------------------------------------- 1 | function showReportForm() { 2 | document.getElementById("container").classList.add("popup-active"); 3 | document.body.classList.add("popup-active"); 4 | document.getElementById("bug-report-form").classList.add("active"); 5 | } 6 | windowFunctions.push(showReportForm); 7 | 8 | function closeReportForm() { 9 | document.getElementById("container").classList.remove("popup-active"); 10 | document.body.classList.remove("popup-active"); 11 | document.getElementById("bug-report-form").classList.remove("active"); 12 | } 13 | windowFunctions.push(closeReportForm); 14 | 15 | function validateReport() { 16 | const form = document.forms["Bug Report Form"]; 17 | const emailInput = form["email"]; 18 | const emailValue = form["email"].value.trim(); 19 | const trustedDomains = ["gmail.com", "outlook.com", "yahoo.com", "hotmail.com", "protonmail.com", "icloud.com", "tutanota.com"]; 20 | const emailDomain = emailValue.split('@')[1].toLowerCase(); 21 | emailInput.addEventListener("input", function () { 22 | emailInput.setCustomValidity(""); 23 | }) 24 | 25 | if (!trustedDomains.includes(emailDomain)) { 26 | emailInput.setCustomValidity("Please provide an email from a trusted provider. Ex: outlook, gmail, yahoo,..etc") 27 | return false; 28 | } 29 | return true; 30 | } 31 | windowFunctions.push(validateReport); 32 | 33 | document.addEventListener("keyup", (event) => { 34 | if (event.key == 'Enter') { 35 | alert(window.innerWidth); 36 | } 37 | }) 38 | 39 | function showChat() { 40 | document.getElementById("infinityChat").style.display = "flex"; 41 | document.getElementById("infinityBtn").onclick = hideChat; 42 | } 43 | 44 | function hideChat() { 45 | document.getElementById("infinityChat").style.display = "none"; 46 | document.getElementById("infinityBtn").onclick = showChat; 47 | } -------------------------------------------------------------------------------- /website/styles/404.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | } 5 | body{ 6 | background-size: 90.3px 90.3px; 7 | background-image: 8 | linear-gradient(to right, rgba(54, 54, 54, 0.705) 1px, transparent 1px), 9 | linear-gradient(to bottom, rgba(54, 54, 54, 0.705) 1px, transparent 1px); 10 | background-attachment: fixed; 11 | background-position-y: -12px; 12 | background-color: rgb(0, 0, 0); 13 | color:white; 14 | } 15 | img{ 16 | margin: 20px; 17 | margin-top: 60px; 18 | height: 20vh; 19 | animation-name: flicker; 20 | animation-duration: 2s; 21 | } 22 | 23 | @keyframes flicker{ 24 | 0%{ 25 | opacity: 1; 26 | } 27 | 20%{ 28 | opacity: 0; 29 | } 30 | 25%{ 31 | opacity: 1; 32 | } 33 | 30%{ 34 | opacity: 0; 35 | } 36 | 50%{ 37 | opacity: 1; 38 | } 39 | 100%{ 40 | opacity: 1; 41 | } 42 | } 43 | div{ 44 | left: 50%; 45 | transform: translate(-50%); 46 | display: flex; 47 | font-size: 30vh; 48 | flex-direction: row; 49 | position: fixed; 50 | top:10vh; 51 | } 52 | .info{ 53 | text-align: center; 54 | font-size: 25px; 55 | color: rgb(212, 212, 212); 56 | width: max-content; 57 | position: fixed; 58 | top: 45vh; 59 | } 60 | #detail{ 61 | top:calc(45vh + 40px); 62 | font-size: 20px; 63 | width:90%; 64 | justify-content: center; 65 | } 66 | .home{ 67 | text-align: center; 68 | font-size: 20px; 69 | color: rgb(212, 212, 212); 70 | width: max-content; 71 | position: fixed; 72 | top: 65vh; 73 | left: 50%; 74 | transform: translate(-50%); 75 | text-decoration: none; 76 | padding: 10px; 77 | border: 1px solid white; 78 | border-radius: 5px; 79 | transition-duration: 0.3s; 80 | } 81 | .home:hover{ 82 | background-color: rgb(255, 255, 255); 83 | color: black; 84 | } 85 | @media (max-width: 400px) { 86 | div{ 87 | font-size: 35vw; 88 | } 89 | img{ 90 | margin: 10px; 91 | margin-top: 30px; 92 | height: 22vw; 93 | } 94 | .info{ 95 | top:30vh; 96 | } 97 | #detail{ 98 | top:40vh; 99 | font-size: 15px; 100 | } 101 | } -------------------------------------------------------------------------------- /website/styles/contributor.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | body { 8 | color: white; 9 | font-family: Arial, sans-serif; 10 | line-height: 1.6; 11 | color: #333; 12 | background-color: #00000000; 13 | overflow-x: hidden; 14 | } 15 | 16 | .slow-scroll { 17 | position: fixed; 18 | z-index: 20; 19 | height: 120vh; 20 | width: 100vw; 21 | background-image: url('../../software/images/dark/background.png'); 22 | background-size: cover; 23 | background-repeat:repeat; 24 | background-attachment: scroll; /* Enable scroll */ 25 | background-position: center 0; 26 | } 27 | 28 | .goBack{ 29 | position: fixed; 30 | bottom: 20px; 31 | left: 20px; 32 | padding: 10px; 33 | background-color: #d0d0d032; 34 | backdrop-filter: blur(7px); 35 | color:rgb(105, 105, 105); 36 | border:none; 37 | border-radius: 7px; 38 | box-shadow: 0 0 5px black; 39 | z-index: 30; 40 | } 41 | 42 | .containerr { 43 | position: absolute; 44 | margin-left: 50vw; 45 | transform: translate(-50%); 46 | z-index: 30; 47 | } 48 | 49 | /* Hero Section */ 50 | .hero { 51 | background-image: url('https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&w=2850&q=80'); 52 | background-size: cover; 53 | background-position: center; 54 | height: 70vh; 55 | display: flex; 56 | align-items: center; 57 | justify-content: center; 58 | text-align: center; 59 | position: relative; 60 | } 61 | 62 | .hero::before { 63 | content: ''; 64 | position: absolute; 65 | top: 0; 66 | left: 0; 67 | right: 0; 68 | bottom: 0; 69 | background-color: rgba(0, 0, 0, 0.644); 70 | } 71 | 72 | .hero-content { 73 | position: relative; 74 | z-index: 1; 75 | color: #fff; 76 | } 77 | 78 | .hero h1 { 79 | font-size: 3.5rem; 80 | margin-bottom: 1rem; 81 | } 82 | 83 | .hero p { 84 | font-size: 1.5rem; 85 | margin-bottom: 2rem; 86 | } 87 | 88 | /* Buttons */ 89 | .btn { 90 | display: inline-block; 91 | padding: 0.8rem 1.5rem; 92 | border: none; 93 | border-radius: 5px; 94 | font-size: 1rem; 95 | cursor: pointer; 96 | transition: background-color 0.3s ease; 97 | } 98 | 99 | .btn-primary { 100 | background-color: #fff; 101 | color: #333; 102 | } 103 | 104 | .btn-primary:hover { 105 | background-color: #f0f0f0; 106 | } 107 | 108 | .btn-secondary { 109 | background-color: #484848; 110 | color: #fff; 111 | } 112 | 113 | .btn-secondary:hover { 114 | background-color: #444; 115 | } 116 | 117 | /* Stats Section */ 118 | .stats { 119 | width: 100vw; 120 | background-color: #000000ab; 121 | padding: 4rem 0; 122 | text-align: center; 123 | } 124 | 125 | .stats h2 { 126 | color: white; 127 | font-size: 2rem; 128 | margin-top: 1rem; 129 | margin-bottom: 2rem; 130 | } 131 | 132 | .stats-grid { 133 | display: grid; 134 | grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 135 | gap: 2rem; 136 | max-width: 1400px; 137 | margin: 0 auto; 138 | } 139 | 140 | .stat-card { 141 | background-color: #000000; 142 | border: 1px solid #b2b2b2; 143 | color: #dfdfdf; 144 | border-radius: 2px; 145 | padding: 5px; 146 | text-align: center; 147 | } 148 | 149 | .stat-card .icon { 150 | font-size: 2rem; 151 | margin-bottom: 1rem; 152 | } 153 | 154 | .stat-card h3 { 155 | font-size: 2rem; 156 | margin-bottom: 0.5rem; 157 | } 158 | 159 | .stat-card p { 160 | color: rgb(255, 255, 255); 161 | } 162 | 163 | /* Contributors Section */ 164 | .contributors { 165 | padding: 4rem 0; 166 | text-align: center; 167 | } 168 | 169 | .contributors h2 { 170 | color: white; 171 | font-size: 2rem; 172 | margin-bottom: 2rem; 173 | } 174 | 175 | .contributors-grid { 176 | display: grid; 177 | grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 178 | gap: 2rem; 179 | max-width: 1400px; 180 | margin: 0 auto; 181 | } 182 | 183 | .contributor-card { 184 | background-color: #000000ca; 185 | border: 1px solid #1e1e1e; 186 | border-radius: 10px; 187 | overflow: hidden; 188 | transition: transform 0.3s ease, box-shadow 0.3s ease; 189 | } 190 | 191 | .contributor-card:hover { 192 | transform: translateY(-5px); 193 | box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); 194 | } 195 | 196 | .contributor-card img { 197 | width: 100px; 198 | height: 100px; 199 | border-radius: 50%; 200 | margin: 1.5rem auto; 201 | display: block; 202 | border: 4px solid #f0f0f0; 203 | } 204 | 205 | .contributor-card h3 { 206 | color: white; 207 | font-size: 1.2rem; 208 | margin-bottom: 0.5rem; 209 | } 210 | 211 | .contributor-card p { 212 | color: #dddddd; 213 | margin-bottom: 1rem; 214 | } 215 | 216 | .contributor-card a { 217 | color: #1e1e1e; 218 | transition: color 0.15s ease-in; 219 | } 220 | 221 | .contributor-card a:hover { 222 | color: #000000; 223 | } 224 | 225 | .contributor-card .contributions { 226 | background-color: #dddddd; 227 | padding: 0.5rem 1rem; 228 | border-radius: 20px; 229 | display: inline-block; 230 | margin-bottom: 1rem; 231 | } 232 | 233 | .contributor-card .footer { 234 | background-color: #dddddd; 235 | padding: 1rem; 236 | display: flex; 237 | justify-content: space-between; 238 | align-items: center; 239 | } 240 | 241 | .contributor-card .footer a { 242 | color: #000000; 243 | text-decoration: none; 244 | display: flex; 245 | align-items: center; 246 | } 247 | 248 | .contributor-card .footer svg { 249 | margin-right: 0.5rem; 250 | } 251 | 252 | /* Loading Spinner */ 253 | .loading { 254 | display: flex; 255 | justify-content: center; 256 | align-items: center; 257 | height: 200px; 258 | } 259 | 260 | .spinner { 261 | border: 4px solid #f3f3f3; 262 | border-top: 4px solid #333; 263 | border-radius: 50%; 264 | width: 40px; 265 | height: 40px; 266 | animation: spin 1s linear infinite; 267 | } 268 | 269 | @keyframes spin { 270 | 0% { transform: rotate(0deg); } 271 | 100% { transform: rotate(360deg); } 272 | } 273 | 274 | /* Call to Action Section */ 275 | .cta { 276 | width: 100vw; 277 | background-color: #000000da; 278 | color: #fff; 279 | padding: 4rem 0; 280 | text-align: center; 281 | } 282 | 283 | .cta h2 { 284 | font-size: 2rem; 285 | margin-bottom: 1rem; 286 | } 287 | 288 | .cta p { 289 | font-size: 1.2rem; 290 | margin-bottom: 2rem; 291 | } 292 | 293 | /* Responsive Design */ 294 | @media (max-width: 768px) { 295 | .hero h1 { 296 | font-size: 2.5rem; 297 | } 298 | 299 | .hero p { 300 | font-size: 1.2rem; 301 | } 302 | .stats-grid{ 303 | width: 90vw; 304 | } 305 | .contributors-grid{ 306 | width: 80vw; 307 | } 308 | .contributor-card{ 309 | width: 80vw; 310 | } 311 | } -------------------------------------------------------------------------------- /website/styles/reviews.css: -------------------------------------------------------------------------------- 1 | /* Basic resets */ 2 | * { 3 | margin: 0; 4 | padding: 0; 5 | box-sizing: border-box; 6 | } 7 | 8 | body { 9 | font-family: 'Arial', sans-serif; 10 | background-color: #000000; 11 | color: #ffffff; 12 | } 13 | 14 | .reviewContainer { 15 | text-align: center; 16 | margin-top: 90px; 17 | } 18 | 19 | .reviewHeading { 20 | color: #ffffff; 21 | font-size: 30px; 22 | font-weight: 600; 23 | margin-bottom: 20px; 24 | } 25 | 26 | #average-rating { 27 | padding: 20px; 28 | text-align: center; 29 | font-size: 30px; 30 | margin-bottom: 20px; 31 | width: 90vw; 32 | margin-left: 5vw; 33 | border: 2px solid #dddddd35; 34 | border-radius: 10px; 35 | } 36 | 37 | .average-rating-text { 38 | font-size: 22px; 39 | } 40 | 41 | .average-star-rating { 42 | color: gold; 43 | } 44 | 45 | .filled { 46 | color: gold; 47 | text-shadow: 0 0 10px gold; 48 | } 49 | 50 | .half { 51 | background: linear-gradient(to right, gold, gold, black, black, black); 52 | background-clip: text; 53 | -webkit-text-fill-color: transparent; 54 | text-shadow: -3px 0 10px gold; 55 | } 56 | 57 | .empty { 58 | margin-left: -25px; 59 | } 60 | 61 | /* Review Container */ 62 | .reviews-container { 63 | display: grid; 64 | grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); 65 | gap: 20px; 66 | padding-bottom: 70px; 67 | width: 90vw; 68 | margin-left: 5vw; 69 | } 70 | 71 | .review { 72 | display: flex; 73 | flex-direction: column; 74 | justify-content: space-between; 75 | position: relative; 76 | background-color: #50505032; 77 | border: 1px solid rgba(202, 202, 202, 0.178); 78 | padding: 15px; 79 | border-radius: 8px; 80 | box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 81 | transition-duration: 0.3s; 82 | } 83 | 84 | .review-header { 85 | display: flex; 86 | align-items: center; 87 | margin-bottom: 15px; 88 | } 89 | 90 | .review-header h3 { 91 | font-size: 1.3em; 92 | color: #cbcbcb; 93 | border-bottom: 1px solid rgba(255, 255, 255, 0.145); 94 | width: 100%; 95 | text-align: left; 96 | padding-bottom: 5px; 97 | } 98 | 99 | .review-content { 100 | position: relative; 101 | color: #ffffff; 102 | font-size: 1em; 103 | text-align: left; 104 | line-height: 1.6; 105 | display: flex; 106 | flex-direction: column; 107 | height: 100%; 108 | } 109 | 110 | .review-date { 111 | float: left; 112 | font-size: 12px; 113 | color: #888; 114 | font-style: italic; 115 | } 116 | 117 | .review-footer { 118 | position: relative; 119 | /* Keep it within the parent review div */ 120 | height: 30px; 121 | /* Adjust as needed */ 122 | display: flex; 123 | align-items: flex-end; 124 | /* Push the date to the bottom */ 125 | justify-content: space-between; 126 | /* Align the date to the left */ 127 | text-align: right; 128 | } 129 | 130 | .star-rating { 131 | background: linear-gradient(to right, #ff0000, #fcc100); 132 | background-clip: text; 133 | -webkit-text-fill-color: transparent; 134 | text-shadow: 0 0 10px gold; 135 | } 136 | 137 | .star-rating star { 138 | margin-right: 5px; 139 | font-size: 1.5rem; 140 | } 141 | 142 | .goBack { 143 | cursor: pointer; 144 | position: fixed; 145 | bottom: 20px; 146 | left: 20px; 147 | padding: 10px; 148 | background-color: #d0d0d032; 149 | backdrop-filter: blur(7px); 150 | color: rgb(105, 105, 105); 151 | border: none; 152 | border-radius: 7px; 153 | box-shadow: 0 0 5px black; 154 | } 155 | 156 | 157 | .review:hover::before { 158 | opacity: 1; 159 | } 160 | 161 | .review::before, 162 | .review::after { 163 | content: ""; 164 | position: absolute; 165 | top: 0; 166 | left: 0; 167 | height: 100%; 168 | width: 100%; 169 | border-radius: inherit; 170 | z-index: 2; 171 | opacity: 0; 172 | transition: opacity 500ms; 173 | } 174 | 175 | .review::before { 176 | background: radial-gradient(500px circle at var(--mouse-x) var(--mouse-y), rgba(255, 255, 255, 0.09), transparent 40%); 177 | z-index: 3; 178 | } 179 | 180 | .review::after { 181 | background: radial-gradient(300px circle at var(--mouse-x) var(--mouse-y), rgba(255, 255, 255, 0.3), transparent 40%); 182 | z-index: 1; 183 | } 184 | 185 | 186 | #reviews-container:hover>.card:after { 187 | opacity: 1; 188 | } -------------------------------------------------------------------------------- /website/styles/support.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | } 5 | body.light-mode { 6 | --color: rgb(19, 19, 19); 7 | --boxShadow: 0px 0px 70px rgb(255, 255, 255), 0px 0px 70px rgb(255, 255, 255), 0px 0px 70px rgb(255, 255, 255); 8 | --background-color: rgb(255, 255, 255); 9 | --border-color: rgb(0, 0, 0); 10 | --form-field-input-color: #0f0f0f; 11 | --filter:invert(0); 12 | } 13 | 14 | body.dark-mode { 15 | --color: rgb(255, 255, 255); 16 | --boxShadow: 0px 0px 70px rgb(0, 0, 0), 0px 0px 70px rgb(0, 0, 0), 0px 0px 70px rgb(0, 0, 0); 17 | --background-color: rgb(0, 0, 0); 18 | --border-color: rgb(255, 255, 255); 19 | --form-field-input-color: #eee; 20 | --filter:invert(1); 21 | } 22 | 23 | body { 24 | background-size: 80px 80px; 25 | background-image: 26 | linear-gradient(to right, rgb(54, 54, 54) 1px, transparent 1px), 27 | linear-gradient(to bottom, rgb(54, 54, 54) 1px, transparent 1px); 28 | background-attachment: fixed; 29 | } 30 | 31 | main { 32 | width: 90vw; 33 | max-width: 1000px; 34 | margin: 20px; 35 | margin-top: 90px; 36 | margin-left: 50vw; 37 | transform: translate(-50%); 38 | } 39 | details { 40 | margin-bottom: 15px; 41 | border: 1px solid #454545; 42 | border-radius: 5px; 43 | overflow: hidden; 44 | transition: max-height 0.6s ease-in-out, padding 0.6s ease-in-out; 45 | max-height: 40px; /* Matches the height of the summary */ 46 | } 47 | details[open] { 48 | max-height: 500px; /* Expands to show content */ 49 | padding-bottom: 10px; /* Adds padding to make expanded state look better */ 50 | } 51 | #infinity { 52 | margin-top: 0; 53 | position: relative; 54 | overflow: hidden; 55 | background-color: var(--background-color); /* Fallback */ 56 | color: var(--color); /* Adjust text color if needed */ 57 | z-index: 0; /* Set lower z-index for the container itself */ 58 | } 59 | 60 | #infinity::before { 61 | content: ''; 62 | position: absolute; 63 | top: 0; 64 | left: 0; 65 | width: 100%; 66 | height: 100%; 67 | background: linear-gradient(to right, var(--background-color), var(--background-color), cyan); 68 | transition: opacity 0.3s ease-in-out; 69 | z-index: -1; /* Place the gradient behind the content */ 70 | } 71 | 72 | #infinity:hover::before { 73 | opacity: 0; /* Fade out the gradient smoothly */ 74 | } 75 | 76 | #infinity .content { 77 | position: relative; /* Make sure content is above the gradient */ 78 | z-index: 1; /* Ensure it appears above the ::before pseudo-element */ 79 | } 80 | #infinityBtn{ 81 | background-color: #0f0f0f00; 82 | border: none; 83 | padding: 0; 84 | width: 100%; 85 | text-align: left; 86 | } 87 | 88 | .infinityImage { 89 | position: absolute; /* Position the image relative to the parent (#infinity) */ 90 | bottom: -50px; 91 | right: 10px; 92 | width: 40%; 93 | opacity: 0; 94 | transition-duration: 0.6s; 95 | } 96 | #infinity:hover .infinityImage{ 97 | opacity: 1; 98 | } 99 | .issueImage{ 100 | float: right; 101 | margin-bottom: -40px; 102 | margin-top: 0px; 103 | right: 10px; 104 | width: 35%; 105 | -webkit-filter: drop-shadow(0px 0px 10px rgb(255, 187, 0)); 106 | filter: drop-shadow(0px 0px 10px rgb(255, 187, 0)); 107 | } 108 | #doubt{ 109 | -webkit-filter: drop-shadow(0px 0px 10px rgb(255, 89, 0)); 110 | filter: drop-shadow(0px 0px 10px rgb(255, 89, 0)); 111 | } 112 | #infinityImg{ 113 | -webkit-filter: drop-shadow(7px 7px 10px rgb(0, 255, 213)); 114 | filter: drop-shadow(7px 7px 10px rgb(0, 255, 213)); 115 | } 116 | summary { 117 | cursor: pointer; 118 | font-weight: bold; 119 | position: relative; 120 | padding-left: 35px; 121 | height: 40px; /* Fixed height for the summary */ 122 | line-height: 40px; /* Vertically aligns text */ 123 | list-style: none; 124 | appearance: none; 125 | min-height: max-content; 126 | } 127 | summary::marker { 128 | content: ""; /* Hides default marker */ 129 | } 130 | summary::before { 131 | content: "+"; 132 | position: absolute; 133 | top:10px; 134 | left: 10px; 135 | color: #ffd000; 136 | font-size: 22px; 137 | line-height: 1; 138 | transition: transform 0.3s ease-in-out; 139 | } 140 | details[open] summary::before { 141 | transform: rotate(45deg); 142 | } 143 | details p { 144 | margin: 10px 10px 0 20px; 145 | } 146 | ul{ 147 | margin-bottom: 20px; 148 | margin-left: 20px; 149 | } 150 | .heading { 151 | margin-left: 0px; 152 | font-size: xx-large; 153 | } 154 | 155 | .category { 156 | height: min-content; 157 | overflow: hidden; 158 | margin-top: 40px; 159 | border: 1px solid rgb(40, 40, 40); 160 | border-radius: 10px; 161 | padding: 20px; 162 | background-color: var(--background-color); 163 | box-shadow: var(--boxShadow); 164 | } 165 | .design_btn { 166 | padding: 10px 20px 10px 20px; 167 | border: 1px solid var(--border-color); 168 | background-color: var(--background-color); 169 | color: var(--color); 170 | border-radius: 5px; 171 | margin-top: 10px; 172 | margin-bottom: 20px; 173 | font-size: medium; 174 | transition-duration: 0.3s; 175 | } 176 | 177 | .design_btn:hover { 178 | filter: invert(1); 179 | } 180 | .in-line{ 181 | display: flex; 182 | justify-content: space-between; 183 | } 184 | .in-line div{ 185 | width: 47%; 186 | } 187 | .funds{ 188 | display: block; 189 | margin-top: -20px; 190 | position: absolute; 191 | right: 20px; 192 | } 193 | .fundInfo{ 194 | max-width: 75%; 195 | word-wrap: break-word; 196 | } 197 | .funds button img{ 198 | height: 15px; 199 | filter: var(--filter); 200 | margin-right: 10px; 201 | } 202 | .fund_links{ 203 | display: flex; 204 | flex-direction: column; 205 | } 206 | .fund_links div{ 207 | display: flex; 208 | padding: 15px; 209 | } 210 | #bug-report-form { 211 | width: 90vw; 212 | max-width: 600px; 213 | z-index: -999; 214 | position: fixed; 215 | top: 30%; 216 | left: 50%; 217 | transform: translate(-40%, -50%); 218 | display: flex; 219 | flex-direction: column; 220 | justify-content: center; 221 | gap: 2.4vh; 222 | opacity: 0%; 223 | transition: all 0.35s ease; 224 | } 225 | 226 | #bug-report-form.active { 227 | z-index: 9999; 228 | top: 45%; 229 | opacity: 100%; 230 | } 231 | 232 | #bug-report-form p { 233 | font-size: 1.8rem; 234 | margin-bottom: 30px; 235 | } 236 | 237 | #bug-report-form label { 238 | font-size: 1.2rem; 239 | display: flex; 240 | flex-direction: column; 241 | justify-content: flex-start; 242 | text-align: left; 243 | } 244 | 245 | #bug-report-form label input, 246 | #issue-select, 247 | #issue-description-field { 248 | background-color: #76767639; 249 | color: var(--form-field-input-color); 250 | width: 100%; 251 | margin-top: 10px; 252 | font-size: 1.1rem; 253 | height: 40px; 254 | box-shadow: none; 255 | border: 2px solid rgba(255, 255, 255, 0.19) 256 | } 257 | 258 | #issue-select { 259 | border-radius: 5px; 260 | } 261 | 262 | #issue-select option { 263 | color: black; 264 | background-color: rgba(255, 255, 255, 0.3); 265 | } 266 | 267 | #issue-description-field { 268 | padding: 3px 4px; 269 | height: 80px; 270 | border-radius: 5px; 271 | } 272 | 273 | #bug-report-form .button-div { 274 | width: 100%; 275 | display: flex; 276 | justify-content: center; 277 | } 278 | 279 | #bug-report-form button[type="submit"] { 280 | background-color: rgba(0, 123, 121, 0.364); 281 | color: rgb(224, 224, 224); 282 | border: none; 283 | border-radius: 3px; 284 | width: 70px; 285 | height: 37px; 286 | transition: all 0.2s ease-out; 287 | } 288 | 289 | #bug-report-form button[type="submit"]:hover { 290 | color: black; 291 | background-color: rgba(0, 240, 236, 0.867); 292 | box-shadow: 0px 0px 15px rgba(0, 240, 236, 0.867); 293 | } 294 | 295 | #close-report-popup { 296 | position: absolute; 297 | background-color: rgba(0, 0, 0, 0); 298 | color: rgb(148, 51, 51); 299 | border: none; 300 | transform: scale(1.3); 301 | right: 1%; 302 | top: 1%; 303 | will-change: transform; 304 | transition: transform 0.2s ease; 305 | } 306 | 307 | #close-report-popup:hover { 308 | transform: scale(1.4); 309 | } 310 | 311 | body.popup-active { 312 | overflow: hidden; 313 | } 314 | 315 | #container.popup-active { 316 | user-select: none; 317 | pointer-events: none; 318 | filter: blur(8px); 319 | overflow: hidden; 320 | } 321 | 322 | /*==============================RESPONSIVE===================================*/ 323 | @media screen and (max-width: 1150px) { 324 | .category-row { 325 | display: flex; 326 | flex-direction: column; 327 | gap: 8vw 328 | } 329 | 330 | section#help-categories { 331 | gap: 8vw; 332 | } 333 | } 334 | 335 | @media screen and (max-width: 500px) { 336 | #bug-report-form { 337 | transform: translate(-50%, -50%); 338 | } 339 | } 340 | 341 | @media screen and (max-width: 453px) { 342 | #heading { 343 | font-size: 1.4rem; 344 | } 345 | 346 | #popup-header p { 347 | font-size: 1.5rem; 348 | } 349 | } 350 | 351 | @media screen and (max-width: 438px) { 352 | #heading { 353 | font-size: 1.3rem; 354 | } 355 | } 356 | 357 | @media screen and (max-width: 408px) { 358 | #heading { 359 | font-size: 1.2rem; 360 | } 361 | 362 | #popup-header p { 363 | font-size: 1.4rem; 364 | } 365 | } 366 | 367 | @media screen and (max-width: 377px) { 368 | #heading { 369 | font-size: 1.1rem; 370 | } 371 | } 372 | 373 | @media screen and (max-width: 340px) { 374 | #popup-header p { 375 | font-size: 1.3rem; 376 | } 377 | } 378 | @media screen and (max-width:600px) { 379 | .in-line{ 380 | display: flex; 381 | flex-direction: column; 382 | justify-content: space-between; 383 | } 384 | .in-line div{ 385 | width: 100%; 386 | } 387 | } 388 | @media screen and (max-width: 900px){ 389 | .fund_links div{ 390 | display: flex; 391 | flex-direction: column; 392 | 393 | } 394 | .funds{ 395 | position: relative; 396 | margin-top: 10px; 397 | margin-left: 20px; 398 | } 399 | .fund_links div{ 400 | padding: 0; 401 | } 402 | .infinityImage{ 403 | bottom: 0px; 404 | } 405 | .fundInfo{ 406 | max-width: 100%; 407 | } 408 | } -------------------------------------------------------------------------------- /website/web_images/2dglow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/2dglow.png -------------------------------------------------------------------------------- /website/web_images/2dglowhalfbg-removebg-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/2dglowhalfbg-removebg-preview.png -------------------------------------------------------------------------------- /website/web_images/2dlogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /website/web_images/3d.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/3d.gif -------------------------------------------------------------------------------- /website/web_images/3d_glow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/3d_glow.webp -------------------------------------------------------------------------------- /website/web_images/3dlogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /website/web_images/ER_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/ER_diagram.png -------------------------------------------------------------------------------- /website/web_images/Infinity-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/Infinity-2.png -------------------------------------------------------------------------------- /website/web_images/about_down.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/about_down.webp -------------------------------------------------------------------------------- /website/web_images/about_up.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/about_up.webp -------------------------------------------------------------------------------- /website/web_images/coffee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/coffee.png -------------------------------------------------------------------------------- /website/web_images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/copy.png -------------------------------------------------------------------------------- /website/web_images/cubes.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/cubes.webp -------------------------------------------------------------------------------- /website/web_images/data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/data.png -------------------------------------------------------------------------------- /website/web_images/develop_down.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/develop_down.webp -------------------------------------------------------------------------------- /website/web_images/develop_up.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/develop_up.webp -------------------------------------------------------------------------------- /website/web_images/doubt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/doubt.png -------------------------------------------------------------------------------- /website/web_images/finance_down.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/finance_down.webp -------------------------------------------------------------------------------- /website/web_images/finance_up.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/finance_up.webp -------------------------------------------------------------------------------- /website/web_images/galaxy.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/galaxy.webp -------------------------------------------------------------------------------- /website/web_images/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/github.png -------------------------------------------------------------------------------- /website/web_images/hide_password_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/hide_password_icon.png -------------------------------------------------------------------------------- /website/web_images/issue.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/issue.webp -------------------------------------------------------------------------------- /website/web_images/live.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/live.gif -------------------------------------------------------------------------------- /website/web_images/loader.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/loader.mp4 -------------------------------------------------------------------------------- /website/web_images/portal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/portal.webp -------------------------------------------------------------------------------- /website/web_images/settings.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/settings.webp -------------------------------------------------------------------------------- /website/web_images/sponsor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/sponsor.png -------------------------------------------------------------------------------- /website/web_images/stars.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/stars.webp -------------------------------------------------------------------------------- /website/web_images/top.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/top.webp -------------------------------------------------------------------------------- /website/web_images/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/user.png -------------------------------------------------------------------------------- /website/web_images/view_password_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/view_password_icon.png -------------------------------------------------------------------------------- /website/web_images/volcano.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/volcano.gif -------------------------------------------------------------------------------- /website/web_images/wordcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/multiverseweb/Dataverse/f0768c8220a2ea477532bd4b5adea2e5f007b9cc/website/web_images/wordcloud.png --------------------------------------------------------------------------------