├── .browserslistrc ├── .eslintrc.js ├── .github ├── config.yml └── workflows │ ├── codeql-analysis.yml │ ├── node.js.yml │ └── scraper.yml ├── .gitignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── babel.config.js ├── data ├── ideas.json └── projects.json ├── docs ├── API,_FULLSTACK, WEB, APPLICATION, WEBSITE_INTERMEDIATE.md ├── DESKTOP_APPLICATION_BASIC.md ├── DESKTOP_APPLICATION_INTERMEDIATE.md ├── GAME_BASIC.md ├── MACHINE_LEARNING_BASIC.md ├── SCRIPT_INTERMEDIATE.md ├── WEBSITE_ADVANCED.md ├── WEBSITE_BASIC.md ├── WEBSITE_INTERMEDIATE.md ├── WEB_APPLICATION_BASIC.md └── WEB_BASIC.md ├── jest.config.js ├── jsconfig.json ├── package-lock.json ├── package.json ├── public ├── _redirects ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ ├── logo.png │ └── logo.svg ├── main.js ├── plugins │ └── vuetify.js ├── router │ └── index.js ├── scraper │ └── index.js └── views │ └── Home.vue ├── tests └── unit │ └── data │ └── index.spec.js └── vue.config.js /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | module.exports = { 3 | root: true, 4 | env: { 5 | browser: true, 6 | es6: true, 7 | node: true, 8 | }, 9 | extends: [ 10 | 'google', 11 | 'plugin:vue/essential', 12 | 'eslint:recommended', 13 | '@vue/prettier', 14 | ], 15 | parserOptions: { 16 | parser: 'babel-eslint', 17 | }, 18 | rules: { 19 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 21 | quotes: ['error', 'single'], 22 | 'linebreak-style': 0, 23 | 'global-require': 0, 24 | 'prettier/prettier': ['warn', fs.readFileSync('.prettierrc')], 25 | 'eslint linebreak-style': [0, 'error', 'windows'], 26 | 'require-jsdoc': [ 27 | 'error', 28 | { 29 | require: { 30 | FunctionDeclaration: false, 31 | MethodDefinition: false, 32 | ClassDeclaration: false, 33 | ArrowFunctionExpression: false, 34 | FunctionExpression: false, 35 | }, 36 | }, 37 | ], 38 | semi: ['error', 'always'], 39 | }, 40 | overrides: [ 41 | { 42 | files: [ 43 | '**/__tests__/*.{j,t}s?(x)', 44 | '**/tests/data/**/*.spec.{j,t}s?(x)', 45 | '**/tests/unit/**/*.spec.{j,t}s?(x)', 46 | ], 47 | env: { 48 | jest: true, 49 | }, 50 | }, 51 | ], 52 | }; 53 | -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | newIssueWelcomeComment: > 2 | Thanks for opening your first issue here! Be sure to follow the issue template! 3 | 4 | newPRWelcomeComment: > 5 | Thanks for opening this pull request! Please check out our contributing guidelines. 6 | 7 | firstPRMergeComment: | 8 | Congrats on merging your first pull request! We here at [MakeContributions](https://github.com/MakeContributions) are proud of you! 🎉🎉🎉🎉. 9 | You are invited to join the team on [Github](https://github.com/MakeContributions) and [Discord](https://discord.gg/ydWxdqbTyK). 10 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ main ] 20 | schedule: 21 | - cron: '43 9 * * 0' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | 28 | strategy: 29 | fail-fast: false 30 | matrix: 31 | language: [ 'javascript' ] 32 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 33 | # Learn more: 34 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 35 | 36 | steps: 37 | - name: Checkout repository 38 | uses: actions/checkout@v2 39 | 40 | # Initializes the CodeQL tools for scanning. 41 | - name: Initialize CodeQL 42 | uses: github/codeql-action/init@v1 43 | with: 44 | languages: ${{ matrix.language }} 45 | # If you wish to specify custom queries, you can do so here or in a config file. 46 | # By default, queries listed here will override any specified in a config file. 47 | # Prefix the list here with "+" to use these queries and those in the config file. 48 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 49 | 50 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 51 | # If this step fails, then you should remove it and run the build manually (see below) 52 | - name: Autobuild 53 | uses: github/codeql-action/autobuild@v1 54 | 55 | # ℹ️ Command-line programs to run using the OS shell. 56 | # 📚 https://git.io/JvXDl 57 | 58 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 59 | # and modify them (or add more) to build your code if your project 60 | # uses a compiled language 61 | 62 | #- run: | 63 | # make bootstrap 64 | # make release 65 | 66 | - name: Perform CodeQL Analysis 67 | uses: github/codeql-action/analyze@v1 68 | -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ main ] 9 | pull_request: 10 | branches: [ main ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [10.x, 12.x, 14.x, 15.x] 20 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | - name: Use Node.js ${{ matrix.node-version }} 25 | uses: actions/setup-node@v2 26 | with: 27 | node-version: ${{ matrix.node-version }} 28 | - run: npm ci 29 | - run: npm run build --if-present 30 | - run: npm test 31 | -------------------------------------------------------------------------------- /.github/workflows/scraper.yml: -------------------------------------------------------------------------------- 1 | name: scraper 2 | 3 | on: 4 | schedule: 5 | - cron: '0 * * * *' 6 | 7 | env: 8 | NODE_ENV: production 9 | 10 | jobs: 11 | scrape: 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | with: 17 | token: ${{secrets.PAT}} 18 | - name: Use Node.js 15.x 19 | uses: actions/setup-node@v2 20 | with: 21 | node-version: 15.x 22 | - run: npm ci 23 | - run: npm run scraper 24 | - uses: stefanzweifel/git-auto-commit-action@v4.4.1 25 | with: 26 | file_pattern: README.md docs/*.md 27 | commit_message: 'docs: update categories' 28 | branch: main 29 | env: 30 | GITHUB_TOKEN: ${{ secrets.PAT }} 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # IDE Settings 2 | .idea/ 3 | .vscode/ 4 | 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | node_modules/ 46 | jspm_packages/ 47 | 48 | # TypeScript v1 declaration files 49 | typings/ 50 | 51 | # TypeScript cache 52 | *.tsbuildinfo 53 | 54 | # Optional npm cache directory 55 | .npm 56 | 57 | # Optional eslint cache 58 | .eslintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variables file 76 | .env 77 | .env.test 78 | 79 | # parcel-bundler cache (https://parceljs.org/) 80 | .cache 81 | 82 | # Next.js build output 83 | .next 84 | 85 | # Nuxt.js build / generate output 86 | .nuxt 87 | dist 88 | 89 | # Gatsby files 90 | .cache/ 91 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 92 | # https://nextjs.org/blog/next-9-1#public-directory-support 93 | # public 94 | 95 | # vuepress build output 96 | .vuepress/dist 97 | 98 | # Serverless directories 99 | .serverless/ 100 | 101 | # FuseBox cache 102 | .fusebox/ 103 | 104 | # DynamoDB Local files 105 | .dynamodb/ 106 | 107 | # TernJS port file 108 | .tern-port 109 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "trailingComma": "es5", 5 | "semi": true, 6 | "singleQuote": true, 7 | "endOfLine": "auto" 8 | } 9 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at tsaibot@outlook.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to make your first contribution? 2 | 3 | This documentation aims to simplify and guide the way beginners make their first contribution. If you are looking to make your first contribution, follow the steps below. 4 | 5 | _If you're not comfortable with command line, [here are tutorials using GUI tools.](#tutorials-using-other-tools)_ 6 | 7 | 8 | 9 | #### If you don't have git on your machine, [install it](https://help.github.com/articles/set-up-git/). 10 | 11 | ## Fork this repository 12 | 13 | Fork this repository by clicking on the fork button on the top of this page. 14 | This will create a copy of this repository in your account. 15 | 16 | ## Clone the repository 17 | 18 | 19 | 20 | Now clone the forked repository to your machine. Go to your GitHub account, open the forked repository, click on the code button and then click the _copy to clipboard_ icon. 21 | 22 | Open a terminal and run the following git command: 23 | 24 | ``` 25 | git clone "url you just copied" 26 | ``` 27 | 28 | "url you just copied" (without the quotation marks) is the URL to this repository (your fork of this project). See the previous steps to obtain the URL. 29 | 30 | 31 | 32 | For example: 33 | 34 | ``` 35 | git clone https://github.com//ideahub.git 36 | ``` 37 | 38 | `your username` is your GitHub username. Here you're copying the contents of the first-contributions repository on GitHub to your computer. 39 | 40 | ## Create a branch 41 | 42 | Change to the repository directory on your computer (if you are not already there): 43 | 44 | ``` 45 | cd ideahub 46 | ``` 47 | 48 | Now create a branch using the `git checkout` command: 49 | 50 | ``` 51 | git checkout -b your-new-branch-name 52 | ``` 53 | 54 | For example: 55 | 56 | ``` 57 | git checkout -b add-new-file 58 | ``` 59 | 60 | The name of the branch does not need to have the word _add_ in it, but it's a reasonable thing to include because the purpose of this branch is to add your name to a list. 61 | 62 | ## Make necessary changes and commit those changes 63 | 64 | Now open add or edit file in a text editor. Add code for any existing algorithm in other language or add some new algorithms. Make sure to update correspond README.md file if needed. Now, save the file. 65 | 66 | 67 | 68 | If you go to the project directory and execute the command `git status`, you'll see there are changes. 69 | 70 | Add those changes to the branch you just created using the `git add` command: 71 | 72 | ``` 73 | git add "name of the file you add or edit" 74 | ``` 75 | 76 | Now commit those changes using the `git commit` command: 77 | 78 | ``` 79 | git commit -m "Add message for the change" 80 | ``` 81 | 82 | ## Push changes to GitHub 83 | 84 | Push your changes using the command `git push`: 85 | 86 | ``` 87 | git push origin 88 | ``` 89 | 90 | This replaces `` with the name of the branch you created earlier. 91 | 92 | ## Submit your changes for review 93 | 94 | If you go to your repository on GitHub, you'll see a `Compare & pull request` button. Click on that button. 95 | 96 | 97 | 98 | Now submit the pull request. 99 | 100 | 101 | 102 | Soon after reviewing all your changes will be merged into the master branch of this project. You will get a notification email once the changes have been merged. 103 | 104 | ## Where to go from here? 105 | 106 | Congrats! You just completed the standard _fork -> clone -> edit -> pull request_ workflow that you'll encounter often as a contributor! 107 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Make Contributions 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [](https://opensource.org/licenses/MIT) 2 | [](https://www.codetriage.com/makecontributions/ideahub) 3 | [](https://sonarcloud.io/dashboard?id=MakeContributions_ideahub) 4 | [](https://sonarcloud.io/dashboard?id=MakeContributions_ideahub) 5 | [](https://sonarcloud.io/dashboard?id=MakeContributions_ideahub) 6 | [](https://app.netlify.com/sites/ideashub/deploys) 7 | [](https://discord.gg/ydWxdqbTyK) 8 | 9 | # IdeaHub 10 | A collection of ideas and projects that contain from beginner to advance :octocat: 🎯🚀 11 | 12 | ## Categories ✨ 13 | 14 | - Website 15 | - [Intermediate](./docs/WEBSITE_INTERMEDIATE.md) 16 | - Desktop Application 17 | - [Basic](./docs/DESKTOP_APPLICATION_BASIC.md) 18 | - [Intermediate](./docs/DESKTOP_APPLICATION_INTERMEDIATE.md) 19 | - Game 20 | - [Basic](./docs/GAME_BASIC.md) 21 | - Machine Learning 22 | - [Basic](./docs/MACHINE_LEARNING_BASIC.md) 23 | - Script 24 | - [Intermediate](./docs/SCRIPT_INTERMEDIATE.md) 25 | - Website 26 | - [Basic](./docs/WEBSITE_BASIC.md) 27 | - [Intermediate](./docs/WEBSITE_INTERMEDIATE.md) 28 | - [Advanced](./docs/WEBSITE_ADVANCED.md) 29 | 30 | 31 | 32 | ## Contribution Guidelines 33 | 1. Fork the project 34 | 2. Modify the file [ideas.json](https://github.com/MakeContributions/ideahub/edit/main/data/ideas.json) or [projects.json](https://github.com/MakeContributions/ideahub/edit/main/data/projects.json) 35 | 3. Add your idea or project to the list as below structure, for more description of json click [here](#jsons-descriptions) 36 | - [Project JSON structure](#project-structure) 37 | ```json 38 | { 39 | "name": "", 40 | "display": "", 41 | "description": "", 42 | "author": "", 43 | "category": "", 44 | "level": "", 45 | "site": "", 46 | "tags": "" 47 | } 48 | ``` 49 | 50 | - [Idea JSON structure](#idea-structure) 51 | ```json 52 | { 53 | "title": "", 54 | "description": "", 55 | "level": "", 56 | "tags": "" 57 | } 58 | ``` 59 | 4. Create a pull request to `main` 60 | 61 | ### Json's descriptions 62 | #### Project structure 63 | |Attribute name | Description | 64 | |---------------|-------------------------------------------------------------------| 65 | |name | Your repo name on github | 66 | |display | The project display name | 67 | |description | The description for your project | 68 | |author | Your github's username | 69 | |category | Project category, ex: game, iot, ml, ai, console app, or website | 70 | |level | The difficulty of the project, ex: basic, intermediate, advanced | 71 | |site | Website URL; Leave an empty string if unavailable | 72 | |tags | Project tags | 73 | 74 | #### Idea structure 75 | |Attribute name | Description | 76 | |---------------|-----------------------------------------------------------------------------------| 77 | |title | The idea title | 78 | |description | The description of what the developer should do | 79 | |level | The difficulty of the idea to programming it, ex: basic, intermediate, advanced | 80 | |tags | Idea Tags. NOTE: the first tag will be use by search the project | 81 | 82 | ### Others 83 | - [First-time contribution](./CONTRIBUTING.md) 84 | ## License 85 | [MIT](./LICENSE) 86 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/cli-plugin-babel/preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /data/ideas.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "File Protection System", 4 | "description": "This is a small File Protection System Made using only Java.", 5 | "level": "intermediate", 6 | "tags": "file-protection-system, security" 7 | }, 8 | { 9 | "title": "Todo List", 10 | "description": "It's a todo list.", 11 | "level": "basic", 12 | "tags": "to-do" 13 | }, 14 | { 15 | "title": "Snake", 16 | "description": "If you had a cellphone in the early 2000s, you’ve probably played Snake. It’s a simple game but you can always try to make things more complex! First, start by just trying to make the game.", 17 | "level": "intermediate", 18 | "tags": "snake, game" 19 | }, 20 | { 21 | "title": "Tetris", 22 | "description": "Create a Tetris game! Sure, it has been done a million times, but it's really interesting to try to make it!", 23 | "level": "intermediate", 24 | "tags": "tetris, game, classic" 25 | }, 26 | { 27 | "title": "Personal Website", 28 | "description": "Make a website for yourself.", 29 | "level": "intermediate", 30 | "tags": "personal-website, web, profile" 31 | }, 32 | { 33 | "title": "Calculator", 34 | "description": "Code up a clone of the windows calculator. It's great practice for GUIs and basic math operation. And if it helps you solve your algebra homework - all the better!", 35 | "level": "basic", 36 | "tags": "calculator" 37 | }, 38 | { 39 | "title": "Feature maps and Filter Visualizer", 40 | "description": "This repository is about the code to extract convolutional-neural-network layers and visualize the filters and feature maps", 41 | "level": "basic", 42 | "tags": "feature-maps-and-filter-visualizer, machine-learning" 43 | }, 44 | { 45 | "title": "Rock, Paper, Scissors", 46 | "description": "Create a rock paper scissors game! Try recreating the classic game, or put your own fun twist on it.", 47 | "level": "basic", 48 | "tags": "rock-paper-scissors, game, classic" 49 | }, 50 | { 51 | "title": "A personal assistant for your system", 52 | "description": " Its fascinating to have a self assistant who can assist you with simple tasks like sending an email with just on your command and greets you too and can help you search for anything on google , can play music, tell the current time, and so on, Right !!", 53 | "level": "basic", 54 | "tags": "personal-assistant" 55 | }, 56 | { 57 | "title": "Currency Converter", 58 | "description": "Create a program that converts currencies using the latest currency exchange rates.", 59 | "level": "basic", 60 | "tags": "currency-converter, web-based-interface" 61 | }, 62 | { 63 | "title": "Blog", 64 | "description": "Build a blog stating your everyday observations.", 65 | "level": "basic", 66 | "tags": "personal-blog,blog" 67 | }, 68 | { 69 | "title": "BackYard Produce Market", 70 | "description": "Create a web app that can post user backyard produce and then sell it to neighbor.", 71 | "level": "intermediate", 72 | "tags": "online-shop, web-app" 73 | }, 74 | { 75 | "title": "One App Social Media Posting", 76 | "description": "Create a web app that can log in to all user social media platform and create the same post across", 77 | "level": "intermediate", 78 | "tags": "social-media, web-app" 79 | }, 80 | { 81 | "title": "Random Meal Generator", 82 | "description": "Create a web app that can generate random meal on clicking a button. Meals are gotten from TheMealDB Api. Display the meal image, ingredients, category, area, tags, name and video that comes from the api.", 83 | "level": "intermediate", 84 | "tags": "random-meal-generator, web-app, api-request" 85 | }, 86 | { 87 | "title": "Car Comparison Selector", 88 | "description": "Use a car database of as many cars as possible with all their features. Present this on a web page and have the user use filters to discover the car that fits them best. ", 89 | "level": "intermediate", 90 | "tags": "car-comparison-selector, web-app, api-request" 91 | }, 92 | { 93 | "title": "Meeting Recipe", 94 | "description": "Send a list of recipes to your friends and receive the most well rated for a meeting", 95 | "level": "intermediate", 96 | "tags": "meeting-recipe, web-app" 97 | }, 98 | { 99 | "title": "School Management System", 100 | "description": "Implementation of school management system", 101 | "level": "intermediate", 102 | "tags": "school-management, web-app" 103 | }, 104 | { 105 | "title": "Real Estate Property Management System", 106 | "description": "Create a web app that can helps to landlords and property managers for managing the lands and properties", 107 | "level": "intermediate", 108 | "tags": "real-estate-management, web-app" 109 | }, 110 | { 111 | "title": "An Efficient Target Tracking Approach", 112 | "description": "To detect the unusual activity using haar-cascade detection in OpenCV", 113 | "level": "intermediate", 114 | "tags": "an-efficient-target-tracking-approach, machine-learning" 115 | }, 116 | { 117 | "title": "Student Attendance Management System", 118 | "description": "Daily attendance tracking of students", 119 | "level": "intermediate", 120 | "tags": "student-attendance-management-system, web-app" 121 | }, 122 | { 123 | "title": "Live chat application (Slack Clone)", 124 | "description": "You can send people messages which they receive live.", 125 | "level": "intermediate", 126 | "tags": "slack-clone, live-chat-app, web-app" 127 | }, 128 | { 129 | "title": "Telegram Bot ", 130 | "description": "Making a telegram bot helps to increase api management skills", 131 | "level": "basic", 132 | "tags": "telegram-bot, bot" 133 | }, 134 | { 135 | "title": "Open Library", 136 | "description": "A web app, basically an open library that has a lot of books and texts available to users. The books are not necessarily owned by the library, a registered user can share their own book with the library where the book/text is unavailable in the library. To attract users, a feature where users can get rewarded with fungible tokens or any worthy collection where a book is read within a particular time or an esteemed user whose texts/books gets a stars for being the most read. Books in this context can be any kind of book, text or collection", 137 | "level": "intermediate", 138 | "tags": "open-library, web-app" 139 | }, 140 | { 141 | "title": "A Language Translator", 142 | "description": "Just like Shazam, an AI application that translates languages or words on the go to the user desired language", 143 | "level": "intermediate", 144 | "tags": "language-translator, machine-learning, artificial intelligence" 145 | }, 146 | { 147 | "title": "Quote Generator", 148 | "description": "A web app which will generate random quotes to motivate users.", 149 | "level": "basic", 150 | "tags": "quote-generator, web-app, fun" 151 | }, 152 | { 153 | "title": "Learn Bafang Application", 154 | "description": "A web app which will permit people from the Bafang tribe to learn the dialect fluently.", 155 | "level": "basic", 156 | "tags": "learn-bafang-application, education, web-app, tribe-fun" 157 | }, 158 | { 159 | "title": "Alarm Clock", 160 | "description": "A web app that allows people to set an alarm as a reminder to do something", 161 | "level": "basic", 162 | "tags": "alarm-clock, web-app" 163 | }, 164 | { 165 | "title": "File System Organizer", 166 | "description": "A project in nodeJS that will sort files on the basis of their extension into particular category folders. Runs via terminal, asks for the path of the folder you want to organize", 167 | "level": "basic", 168 | "tags": "file-organization, extension-sort, nodeJS" 169 | }, 170 | { 171 | "title": "World Clock", 172 | "description": "A web app where you specify the country or city and it gives you the current time.", 173 | "level": "basic", 174 | "tags": "clock, date, time" 175 | }, 176 | { 177 | "title": "RGB Slider", 178 | "description": "A color-generating web app which contains three sliders for Red, Blue and Green colors respectively. On moving the sliders, the background color of the screen will change dynamically according to the RGB values.", 179 | "level":"basic", 180 | "tags": "rgb-slider, slider, color-generator, dynamic-colors" 181 | }, 182 | { 183 | "title": "Buguide", 184 | "description": "An insect identifier app", 185 | "level": "intermediate", 186 | "tags": "bug, insect, insects, identifier, ai, python, image recognition, machine learning, data" 187 | }, 188 | { 189 | "title": "RoadMap Generator", 190 | "description": "An app or website to generate a possible, safest and most acceptable roadmap for the query user seraches about like full stack developement, software developement etc. and also shows the details of each step to gain success", 191 | "level": "advanced", 192 | "tags": "roadmap, success, process" 193 | }, 194 | { 195 | "title": "Picture Finder", 196 | "description": "A website where we search for any picture that is available on unsplash. we can use unsplash API for this, also we can use axios for fetching the data and a UI library for styling.", 197 | "level": "basic", 198 | "tags": "picture-finder, api" 199 | }, 200 | { 201 | "title": "Clash of Space", 202 | "description": "This is space-craft and alien shooting game where a player can earn points based on how many alien spacecrafts the player can destroy and the player has to protect his/her spaceship from the aliens to save the health level.", 203 | "level": "basic", 204 | "tags": "clash-of-space, game, space-war, alien-shooting, action" 205 | }, 206 | { 207 | "title": "Book App", 208 | "description": "A cataloging web application where users can search for books by title or author using an API.", 209 | "level": "advanced", 210 | "tags": "book-app, search, web-app" 211 | }, 212 | { 213 | "title": "Word Guessing Game", 214 | "description": "A simple word guessing game.", 215 | "level": "intermediate", 216 | "tags": "word-guessing-game" 217 | }, 218 | { 219 | "title": "Dual Use Chemical Tracking System", 220 | "description": "This software is designed for the NCB to track the supply chain of chemicals that can be illicitly used from the manufacturer to the end-user..", 221 | "level": "intermediate", 222 | "tags": "DUCTS, HTML, CSS, JavaScript, MySql, Solidity, Blockchain" 223 | }, 224 | { 225 | "title": "Book Donation App", 226 | "description": "App for share knowledge by donationg books.", 227 | "level": "intermediate", 228 | "tags": "book-donation" 229 | }, 230 | { 231 | "title": "Guess the Number", 232 | "description": "Guess the number between 1 - 20", 233 | "level": "basic", 234 | "tags": "number-guessing" 235 | }, 236 | { 237 | "title": "Major Days in History", 238 | "description": "A web application comprising major days in history including births, deaths, inventions, wars, etc. User can search for days, events or persons using an API.", 239 | "level": "intermediate", 240 | "tags": "major-days-in-history, search" 241 | }, 242 | { 243 | "title": "Barber Shop", 244 | "description": "Barber shop (adaptable) reservations system ", 245 | "level": "intermediate", 246 | "tags": "barber-shop" 247 | }, 248 | { 249 | "title": "Movie Quote Generator", 250 | "description": "A web app that generates random movie quotes", 251 | "level": "intermediate", 252 | "tags": "quote-generator" 253 | }, 254 | { 255 | "title": "Copia Backups", 256 | "description": "Script for creating backups", 257 | "level": "intermediate", 258 | "tags": "copia-backups" 259 | }, 260 | { 261 | "title": "Api GPS System ", 262 | "description": "a web to consume waze api to improve another apps", 263 | "level": "intermediate", 264 | "tags": "Api-GPS" 265 | } 266 | ] 267 | -------------------------------------------------------------------------------- /data/projects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "File-protection-system", 4 | "display": "File Protection System", 5 | "description": "This is a small File Protection System Made using only Java.", 6 | "author": "AryanP45", 7 | "category": "desktop application", 8 | "level": "intermediate", 9 | "site": "https://github.com/AryanP45/File-protection-system", 10 | "tags": "java, swing, security, file-protection-system" 11 | }, 12 | { 13 | "name": "markdown-dungeon", 14 | "display": "Markdown Dungeon", 15 | "description": "This is an example that how to use Markdown creating a dungeon", 16 | "author": "MakeContributions", 17 | "category": "game", 18 | "level": "basic", 19 | "site": "https://markdown-dungeon.netlify.app/", 20 | "tags": "dungeon, markdown-dungeon, gatsby, reactjs" 21 | }, 22 | { 23 | "name": "Memoy-Card-Game", 24 | "display": "Memoy Card Game", 25 | "description": "This is memory card game built with vanilla javascript.", 26 | "author": "selharem", 27 | "category": "game", 28 | "level": "basic", 29 | "site": "https://github.com/Selharem/Memoy-Card-Game", 30 | "tags": "javascript, css, html" 31 | }, 32 | { 33 | "name": "Hotel-Reservation-System", 34 | "display": "Hotel Reservation System", 35 | "description": "A website for Hotel Reservations using JSP & Servlets", 36 | "author": "TawfikYasser", 37 | "category": "website", 38 | "level": "intermediate", 39 | "site": "", 40 | "tags": "html, css, jsp, servlets, mysql" 41 | }, 42 | { 43 | "name": "eLearning", 44 | "display": "eLearning", 45 | "description": "It's a simple landing page. Made with Bootstrap 5.", 46 | "author": "hasan-naim", 47 | "category": "website", 48 | "level": "basic", 49 | "site": "https://elearning-hasan.netlify.app/", 50 | "tags": "e-learning, html, css, bootstrap" 51 | }, 52 | { 53 | "name": "Paint-with-UG-The-SEP", 54 | "display": "Paint with UG", 55 | "description": "This is a Desktop Application in which you can create shape,fill color,change background etc.", 56 | "author": "UG-SEP", 57 | "category": "desktop application", 58 | "level": "intermediate", 59 | "site": "", 60 | "tags": "c, c++, data-structure" 61 | }, 62 | { 63 | "name": "stickies", 64 | "display": "Stickies", 65 | "description": "Stickies is a TodoList frontend project designed to preview Vue.js and Vuex capabilities. Designed using figma software, Bulma and Buefy.", 66 | "author": "franciscoh017", 67 | "category": "website", 68 | "level": "basic", 69 | "site": "https://franciscoh017.github.io/stickies/", 70 | "tags": "to-do, vuejs, buefy" 71 | }, 72 | { 73 | "name": "UG-Typing-Expert", 74 | "display": "UG Typing Expert", 75 | "description": "This is a desktop application where you can check your typing speed and increase it and you can also play typing games.", 76 | "author": "UG-SEP", 77 | "category": "desktop application", 78 | "level": "intermediate", 79 | "site": "", 80 | "tags": "Typing-Game, C-Projects, c++" 81 | }, 82 | { 83 | "name": "tic-tac-toe", 84 | "display": "Tic Tac Toe", 85 | "description": "This is a two player game where 1 player choose 0 and other X and try to win the match according to some rules", 86 | "author": "UG-SEP", 87 | "category": "game", 88 | "level": "basic", 89 | "site": "", 90 | "tags": "tic-tac-toe, c, game, c++" 91 | }, 92 | { 93 | "name": "CodersArena", 94 | "display": "Coders Arena", 95 | "description": "A (web application) platform to have a coding combat with your friend (30 minutes) with random question from our library and also a platform to create test (MCQ and time based) and also to attend MCQ test.", 96 | "author": "fantasy-08", 97 | "category": "website", 98 | "level": "intermediate", 99 | "site": "https://boringcoder.herokuapp.com/", 100 | "tags": "react-js, node-js, mongo-db" 101 | }, 102 | { 103 | "name": "library_management", 104 | "display": "Library Management", 105 | "description": "This is a desktop console application which is used to make library work easy i.e. issue book, add book, remove book from library etc.", 106 | "author": "UG-SEP", 107 | "category": "desktop application", 108 | "level": "basic", 109 | "site": "", 110 | "tags": "library-management, c-projects, console-application, management-projects" 111 | }, 112 | { 113 | "name": "franciscoh017.github.io", 114 | "display": "franciscoh017 Profile", 115 | "description": "My personal website", 116 | "author": "franciscoh017", 117 | "category": "website", 118 | "level": "basic", 119 | "site": "https://franciscoh017.github.io", 120 | "tags": "personal-website, profile, web" 121 | }, 122 | { 123 | "name": "Visualizing-Filters-and-Feature-Maps-in-Convolutional-Neural-Networks-using-PyTorch", 124 | "display": "Visualize Filters and Feature maps using PyTorch", 125 | "description": "A way to visualize filters and feature maps", 126 | "author": "Ashborn-SM", 127 | "category": "machine learning", 128 | "level": "basic", 129 | "site": "", 130 | "tags": "feature-maps-and-filter-visualizer, machine-learning, python" 131 | }, 132 | { 133 | "name": "TravelYaari-react", 134 | "display": "TravelYaari A traveling website", 135 | "description": "This project is based on how an effective travel website will make us feel. It is based on a traveling website with fully-featured functions that will activate the traveling bug with vibrant imagery. This website contains highlights of some important places along with high-quality photography and allows people to book their dream destination within their budgets. It also includes full customer support, an easy payment system, book as per your time choice, full virtual tour of place through different videos and images.", 136 | "author": "shsarv", 137 | "category": "website", 138 | "level": "intermediate", 139 | "site": "https://travelyaari.herokuapp.com/", 140 | "tags": "react-js, node-js, mongo-db, personal-website,web" 141 | }, 142 | { 143 | "name": "Queue-Visualizer", 144 | "display": "Queue Visualizer", 145 | "description": "Queue Visualizer helps you to understand how queue work.", 146 | "author": "UG-SEP", 147 | "category": "desktop application", 148 | "level": "basic", 149 | "site": "", 150 | "tags": "visualizer-app, c, c++, graphics-project" 151 | }, 152 | { 153 | "name": "Car-Zone", 154 | "display": "Car Zone", 155 | "description": "Car Zone is a desktop app where you have to protect your car from the upcoming enemy car.", 156 | "author": "UG-SEP", 157 | "category": "desktop application", 158 | "level": "basic", 159 | "site": "", 160 | "tags": "car-game, c, c++, graphics-project" 161 | }, 162 | { 163 | "name": "Venessa-My-Personal-Assistant", 164 | "display": "Personal Assitant using Python", 165 | "description": "It will assist you with simple tasks like sending an email with just on your command and greets you too and can help you search for anything on google , can play music, tell the current time, and so on..", 166 | "author": "emily876", 167 | "category": "desktop application", 168 | "level": "basic", 169 | "site": "", 170 | "tags": "python-project, personal-assistant, python-assistant" 171 | }, 172 | { 173 | "name": "exchangerate-javascript-sdk", 174 | "display": "Currency Converter", 175 | "description": "Unofficial JavaScript SDK for Exchange rates API", 176 | "author": "reliut-g", 177 | "category": "website", 178 | "level": "basic", 179 | "site": "https://reliut-g.github.io/exchangerate-javascript-sdk/", 180 | "tags": "currency-converter" 181 | }, 182 | { 183 | "name": "vending-machine", 184 | "display": "Vending machine", 185 | "description": "Vending machine using React & TypeScript. You can also add an EmotionJS library instead of using scss", 186 | "author": "krau5", 187 | "category": "website", 188 | "level": "intermediate", 189 | "site": "", 190 | "tags": "react, typescript, redux-toolkit" 191 | }, 192 | { 193 | "name": "vision-ai", 194 | "display": "Vision", 195 | "description": "Extract text from an image using a trained AI model", 196 | "author": "Angelvicks", 197 | "category": "website", 198 | "level": "intermediate", 199 | "site": "https://github.com/Angelvicks/vision-ai", 200 | "tags": "fast-api, react, artificial-intelligence" 201 | }, 202 | { 203 | "name": "pokemon-world", 204 | "display": "Pokemon Awesome", 205 | "description": "Pokémon Awesome is a simple yet rich-featured Pokémon website that is built in order to allow Pokémon lovers to easily explore Pokémon and do many more things. Anyone can use this site to search for Pokémon by name and filter them by generation and type", 206 | "author": "afiiif", 207 | "category": "website", 208 | "level": "advanced", 209 | "site": "https://pokemon-awesome.vercel.app/", 210 | "tags": "graphql, pokemon, typescript, nextjs, tailwindcss, react-query" 211 | }, 212 | { 213 | "name": "poketalog", 214 | "display": "Poketalog", 215 | "description": "Catalog Pokemon using pokeapi.co", 216 | "author": "shonenxnaifu", 217 | "category": "website", 218 | "level": "intermediate", 219 | "site": "https://poketalog.herokuapp.com/", 220 | "tags": "pokeapi, pokemon, vue, catalog" 221 | }, 222 | { 223 | "name": "libkunci_scraping", 224 | "display": "Web Scraper - Kunci", 225 | "description": "Web scrapper to get all data from lib.kunci.or.id", 226 | "author": "shonenxnaifu", 227 | "category": "website", 228 | "level": "intermediate", 229 | "site": "https://github.com/shonenxnaifu/libkunci_scraping", 230 | "tags": "scrapping, puppeteer, nodejs, express" 231 | }, 232 | { 233 | "name": "sahilpatel09.github.io", 234 | "display": "Dark Themed Personal Portfolio Website with Blog", 235 | "description": "A personal portfolio theme with dark navy blue theme. It has a markdown based blog system with tags, powered by Gridsome and power of GraphQl.", 236 | "author": "sahilpatel09", 237 | "category": "website", 238 | "level": "intermediate", 239 | "site": "https://sahilpatel09.github.io/", 240 | "tags": "vuejs, personal-website, Gridsome, Graphql, markdown, personal-blog" 241 | }, 242 | { 243 | "name": "ip-tracker", 244 | "display": "IP Tracker built with Vuejs", 245 | "description": "A single page app to find the location and other critical information about an IP address.", 246 | "author": "sahilpatel09", 247 | "category": "website", 248 | "level": "intermediate", 249 | "site": "https://brave-mirzakhani-8081ab.netlify.app/", 250 | "tags": "vuejs, pico css, netlify" 251 | }, 252 | { 253 | "name": "hibi-ciento", 254 | "display": "Hibi Ciento", 255 | "description": "A project to built a website in hundred days using front end and backend supports.", 256 | "author": "TenTraicion", 257 | "category": "website", 258 | "level": "intermediate", 259 | "site": "", 260 | "tags": "html, css, javascript, node.js, mongodb" 261 | }, 262 | { 263 | "name": "Score-Keeper", 264 | "display": "Score Keeper", 265 | "description": "Score Keeper is a simple game which I have implemented using HTML, CSS and JavaScript.", 266 | "author": "vedant-z", 267 | "category": "website", 268 | "level": "basic", 269 | "site": "", 270 | "tags": "score-Keeper, HTML, CSS, JAVASCRIPT" 271 | }, 272 | { 273 | "name": "true-crime-api", 274 | "display": "Crime Fiction API", 275 | "description": "An API that provides additional information based on the obsession with a true crime podcast from the mystery-comedy show ... Only Murders in the Building", 276 | "author": "deesclouds", 277 | "category": "website", 278 | "level": "intermediate", 279 | "site": "https://github.com/deesclouds/true-crime-api", 280 | "tags": "api, true-crime, web application, fullstack, full-stack, fiction, tv, show, only, murders, in, building, database, mongodb, node.js, javascript, react, html, css, netlify, markdown, scraping, express, cors" 281 | }, 282 | { 283 | "name": "FNDetectoApp", 284 | "display": "Fake news detection", 285 | "description": "Fake news detection web app which detects real or fake news using the machine learning.", 286 | "author": "d-coder111", 287 | "category": "machine learning", 288 | "level": "basic", 289 | "site": "", 290 | "tags": "python, html, flask, machine-learning, azure-webapp, azure-deployment, github-actions, fake-news-detection" 291 | }, 292 | { 293 | "name": "ecommerce-multi-page", 294 | "display": "E-Commerce Multi Page", 295 | "description": "This project focuses on building an e-commerce site with multiple pages.", 296 | "author": "jalexandertech", 297 | "category": "website", 298 | "level": "intermediate", 299 | "site": "https://ecommerce-multi-page.vercel.app/index.html", 300 | "tags": "e-commerce, html, css, vercel" 301 | }, 302 | { 303 | "name": "clash-of-space", 304 | "display": "Clash of Space", 305 | "description": "This is a space-craft war and alien shooting game", 306 | "author": "Rajspeaks", 307 | "category": "game", 308 | "level": "basic", 309 | "site": "https://rajspeaks.github.io/clash-of-space/", 310 | "tags": "game, html, css, javascript, space, clash-of-space" 311 | }, 312 | { 313 | "name": "Movie-Mania", 314 | "display": "Find Your Favourite Movies", 315 | "description": "A Fully Responsive Beautiful Movie Details Web App Made With React.Js and MovieDB API.", 316 | "author": "MahendraBishnoi29", 317 | "category": "website", 318 | "level": "intermediate", 319 | "site": "https://movie-mania0.netlify.app/", 320 | "tags": "movies, api, react" 321 | }, 322 | { 323 | "name": "DUCTS", 324 | "display": "Dual Use Chemical Tracking System", 325 | "description": "This software is designed for the NCB to track the supply chain of chemicals that can be illicitly used from the manufacturer to the end-user.", 326 | "author": "Atreay Kukanur", 327 | "category": "Website", 328 | "level": "intermediate", 329 | "site": "https://github.com/ATREAY/DUCTS", 330 | "tags": "HTML, CSS, JavaScript, MySql, Solidity, Blockchain" 331 | }, 332 | { 333 | "name": "Word-guessing-game", 334 | "display": "Word Guessing Game", 335 | "description": "A game where you have to guess the words.", 336 | "author": "mukul314", 337 | "category": "website", 338 | "level": "intermediate", 339 | "site": "https://mukul314.github.io/Word-guessing-game/", 340 | "tags": "word-guessing-game, Js, html, css" 341 | }, 342 | { 343 | "name": "Guess-the-Number", 344 | "display": "Guess the number between 1 - 20", 345 | "description": "A game where you have to guess a number between 1 to 20.", 346 | "author": "techtuner", 347 | "category": "website", 348 | "level": "basic", 349 | "site": "https://techtuner.github.io/Guess-the-Number/", 350 | "tags": "number-guessing, JavaScript, html, css" 351 | }, 352 | { 353 | "name": "Gallery", 354 | "display": "Image Gallery", 355 | "description": "A Simple Image Gallery with a Modal feature.", 356 | "author": "ahmedsilat44", 357 | "category": "website", 358 | "level": "basic", 359 | "site": "https://ahmedsilat44.github.io/Gallery/", 360 | "tags": "image-gallery, gallery, Js, html, css" 361 | }, 362 | { 363 | "name": "barber-shop", 364 | "display": "Barber Shop", 365 | "description": "Reservations system made with Vue + Firebase ecosystem (cloud functions, auth, firestore, hosting).", 366 | "author": "ibonkonesa", 367 | "category": "website", 368 | "level": "intermediate", 369 | "site": "https://barber-shop-53333.web.app", 370 | "tags": "vuejs, firebase, html, js, css, barber-shop" 371 | }, 372 | { 373 | "name": "movie-quote-generator", 374 | "display": "Random Movie Quote Genrator", 375 | "description": "A web app that generates random movie quotes.", 376 | "author": "kamiri-charles", 377 | "category": "website", 378 | "level": "intermediate", 379 | "site": "https://kamiri-charles.github.io/movie-quote-generator/", 380 | "tags": "react, quote-generator, html, css, javascript" 381 | }, 382 | { 383 | "name": "copia-backups", 384 | "display": "Copia backups", 385 | "description": "A script for creating backups of multiple folders/files into multiple destinations.", 386 | "author": "lmponcio", 387 | "category": "script", 388 | "level": "intermediate", 389 | "site": "https://github.com/lmponcio/copia-backups", 390 | "tags": "python, copia-backups, scripting" 391 | } 392 | ] 393 | -------------------------------------------------------------------------------- /docs/API,_FULLSTACK, WEB, APPLICATION, WEBSITE_INTERMEDIATE.md: -------------------------------------------------------------------------------- 1 | # Api, Fullstack, Web, Application, Website - Intermediate 2 | - [Crime Fiction API](https://github.com/deesclouds/true-crime-api) - [@deesclouds](https://github.com/deesclouds) -------------------------------------------------------------------------------- /docs/DESKTOP_APPLICATION_BASIC.md: -------------------------------------------------------------------------------- 1 | # Desktop Application - Basic 2 | - [Library Management](https://github.com/UG-SEP/library_management) - [@UG-SEP](https://github.com/UG-SEP) 3 | - [Queue Visualizer](https://github.com/UG-SEP/Queue-Visualizer) - [@UG-SEP](https://github.com/UG-SEP) 4 | - [Car Zone](https://github.com/UG-SEP/Car-Zone) - [@UG-SEP](https://github.com/UG-SEP) 5 | - [Personal Assitant using Python](https://github.com/emily876/Venessa-My-Personal-Assistant) - [@emily876](https://github.com/emily876) -------------------------------------------------------------------------------- /docs/DESKTOP_APPLICATION_INTERMEDIATE.md: -------------------------------------------------------------------------------- 1 | # Desktop Application - Intermediate 2 | - [File Protection System](https://github.com/AryanP45/File-protection-system) - [@AryanP45](https://github.com/AryanP45) 3 | - [Paint with UG](https://github.com/UG-SEP/Paint-with-UG-The-SEP) - [@UG-SEP](https://github.com/UG-SEP) 4 | - [UG Typing Expert](https://github.com/UG-SEP/UG-Typing-Expert) - [@UG-SEP](https://github.com/UG-SEP) -------------------------------------------------------------------------------- /docs/GAME_BASIC.md: -------------------------------------------------------------------------------- 1 | # Game - Basic 2 | - [Markdown Dungeon](https://github.com/MakeContributions/markdown-dungeon) - [@MakeContributions](https://github.com/MakeContributions) 3 | - [Memoy Card Game](https://github.com/selharem/Memoy-Card-Game) - [@selharem](https://github.com/selharem) 4 | - [Tic Tac Toe](https://github.com/UG-SEP/tic-tac-toe) - [@UG-SEP](https://github.com/UG-SEP) 5 | - [Clash of Space](https://github.com/Rajspeaks/clash-of-space) - [@Rajspeaks](https://github.com/Rajspeaks) -------------------------------------------------------------------------------- /docs/MACHINE_LEARNING_BASIC.md: -------------------------------------------------------------------------------- 1 | # Machine Learning - Basic 2 | - [Visualize Filters and Feature maps using PyTorch](https://github.com/Ashborn-SM/Visualizing-Filters-and-Feature-Maps-in-Convolutional-Neural-Networks-using-PyTorch) - [@Ashborn-SM](https://github.com/Ashborn-SM) 3 | - [Fake news detection](https://github.com/d-coder111/FNDetectoApp) - [@d-coder111](https://github.com/d-coder111) -------------------------------------------------------------------------------- /docs/SCRIPT_INTERMEDIATE.md: -------------------------------------------------------------------------------- 1 | # Script - Intermediate 2 | - [Copia backups](https://github.com/lmponcio/copia-backups) - [@lmponcio](https://github.com/lmponcio) -------------------------------------------------------------------------------- /docs/WEBSITE_ADVANCED.md: -------------------------------------------------------------------------------- 1 | # Website - Advanced 2 | - [Pokemon Awesome](https://github.com/afiiif/pokemon-world) - [@afiiif](https://github.com/afiiif) -------------------------------------------------------------------------------- /docs/WEBSITE_BASIC.md: -------------------------------------------------------------------------------- 1 | # Website - Basic 2 | - [eLearning](https://github.com/hasan-naim/eLearning) - [@hasan-naim](https://github.com/hasan-naim) 3 | - [Stickies](https://github.com/franciscoh017/stickies) - [@franciscoh017](https://github.com/franciscoh017) 4 | - [franciscoh017 Profile](https://github.com/franciscoh017/franciscoh017.github.io) - [@franciscoh017](https://github.com/franciscoh017) 5 | - [Currency Converter](https://github.com/reliut-g/exchangerate-javascript-sdk) - [@reliut-g](https://github.com/reliut-g) 6 | - [Score Keeper](https://github.com/vedant-z/Score-Keeper) - [@vedant-z](https://github.com/vedant-z) 7 | - [Guess the number between 1 - 20](https://github.com/techtuner/Guess-the-Number) - [@techtuner](https://github.com/techtuner) 8 | - [Image Gallery](https://github.com/ahmedsilat44/Gallery) - [@ahmedsilat44](https://github.com/ahmedsilat44) -------------------------------------------------------------------------------- /docs/WEBSITE_INTERMEDIATE.md: -------------------------------------------------------------------------------- 1 | # Website - Intermediate 2 | - [Hotel Reservation System](https://github.com/TawfikYasser/Hotel-Reservation-System) - [@TawfikYasser](https://github.com/TawfikYasser) 3 | - [Coders Arena](https://github.com/fantasy-08/CodersArena) - [@fantasy-08](https://github.com/fantasy-08) 4 | - [TravelYaari A traveling website](https://github.com/shsarv/TravelYaari-react) - [@shsarv](https://github.com/shsarv) 5 | - [Vending machine](https://github.com/krau5/vending-machine) - [@krau5](https://github.com/krau5) 6 | - [Vision](https://github.com/Angelvicks/vision-ai) - [@Angelvicks](https://github.com/Angelvicks) 7 | - [Poketalog](https://github.com/shonenxnaifu/poketalog) - [@shonenxnaifu](https://github.com/shonenxnaifu) 8 | - [Web Scraper - Kunci](https://github.com/shonenxnaifu/libkunci_scraping) - [@shonenxnaifu](https://github.com/shonenxnaifu) 9 | - [Dark Themed Personal Portfolio Website with Blog](https://github.com/sahilpatel09/sahilpatel09.github.io) - [@sahilpatel09](https://github.com/sahilpatel09) 10 | - [IP Tracker built with Vuejs](https://github.com/sahilpatel09/ip-tracker) - [@sahilpatel09](https://github.com/sahilpatel09) 11 | - [Hibi Ciento](https://github.com/TenTraicion/hibi-ciento) - [@TenTraicion](https://github.com/TenTraicion) 12 | - [Crime Fiction API](https://github.com/deesclouds/true-crime-api) - [@deesclouds](https://github.com/deesclouds) 13 | - [E-Commerce Multi Page](https://github.com/jalexandertech/ecommerce-multi-page) - [@jalexandertech](https://github.com/jalexandertech) 14 | - [Find Your Favourite Movies](https://github.com/MahendraBishnoi29/Movie-Mania) - [@MahendraBishnoi29](https://github.com/MahendraBishnoi29) 15 | - [Word Guessing Game](https://github.com/mukul314/Word-guessing-game) - [@mukul314](https://github.com/mukul314) 16 | - [Barber Shop](https://github.com/ibonkonesa/barber-shop) - [@ibonkonesa](https://github.com/ibonkonesa) 17 | - [Random Movie Quote Genrator](https://github.com/kamiri-charles/movie-quote-generator) - [@kamiri-charles](https://github.com/kamiri-charles) -------------------------------------------------------------------------------- /docs/WEB_APPLICATION_BASIC.md: -------------------------------------------------------------------------------- 1 | # Web Application - Basic 2 | - [Score Keeper](https://github.com/vedant-z/Score-Keeper) - [@vedant-z](https://github.com/vedant-z) -------------------------------------------------------------------------------- /docs/WEB_BASIC.md: -------------------------------------------------------------------------------- 1 | # Web - Basic 2 | - [franciscoh017 Profile](https://github.com/franciscoh017/franciscoh017.github.io) - [@franciscoh017](https://github.com/franciscoh017) -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: '@vue/cli-plugin-unit-jest', 3 | }; 4 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "./src/**/*", 4 | "./tests/**/*" 5 | ] 6 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ideahub", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "A collection of ideas and projects that contain from beginner to advance :octocat: 🎯🚀", 6 | "author": "MakeContributions ", 7 | "scripts": { 8 | "serve": "vue-cli-service serve", 9 | "build": "vue-cli-service build", 10 | "lint": "vue-cli-service lint", 11 | "scraper": "node ./src/scraper/index.js", 12 | "test": "vue-cli-service test:unit" 13 | }, 14 | "main": "index.js", 15 | "dependencies": { 16 | "core-js": "^3.6.5", 17 | "fs": "0.0.2", 18 | "vue": "^2.6.11", 19 | "vue-router": "^3.2.0", 20 | "vuetify": "^2.4.0" 21 | }, 22 | "devDependencies": { 23 | "@types/node": "^14.14.37", 24 | "@vue/cli-plugin-babel": "~4.5.0", 25 | "@vue/cli-plugin-eslint": "~4.5.0", 26 | "@vue/cli-plugin-router": "~4.5.0", 27 | "@vue/cli-plugin-unit-jest": "~4.5.0", 28 | "@vue/cli-service": "^4.5.13", 29 | "@vue/eslint-config-prettier": "^6.0.0", 30 | "@vue/test-utils": "^1.0.3", 31 | "babel-eslint": "^10.1.0", 32 | "eslint": "^6.7.2", 33 | "eslint-config-google": "^0.14.0", 34 | "eslint-plugin-prettier": "^3.3.1", 35 | "eslint-plugin-vue": "^6.2.2", 36 | "jest": "^26.6.3", 37 | "lint-staged": "^9.5.0", 38 | "prettier": "^2.2.1", 39 | "sass": "^1.32.0", 40 | "sass-loader": "^10.0.0", 41 | "vue-cli-plugin-vuetify": "~2.4.0", 42 | "vue-template-compiler": "^2.6.11", 43 | "vuetify-loader": "^1.7.0" 44 | }, 45 | "bugs": { 46 | "url": "https://github.com/MakeContributions/ideahub/issues" 47 | }, 48 | "directories": { 49 | "doc": "docs", 50 | "test": "test" 51 | }, 52 | "gitHooks": { 53 | "pre-commit": "lint-staged" 54 | }, 55 | "homepage": "https://github.com/MakeContributions/ideahub#readme", 56 | "keywords": [ 57 | "projects", 58 | "ideas", 59 | "hub" 60 | ], 61 | "license": "MIT", 62 | "lint-staged": { 63 | "*.{js,jsx,vue}": [ 64 | "vue-cli-service lint", 65 | "git add" 66 | ] 67 | }, 68 | "repository": { 69 | "type": "git", 70 | "url": "git+https://github.com/MakeContributions/ideahub.git" 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MakeContributions/ideahub/ebab508ee19bd967b4fb3a732675b48553a5b71c/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | IdeaHub 9 | 10 | 11 | 12 | 13 | 14 | We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue. 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MakeContributions/ideahub/ebab508ee19bd967b4fb3a732675b48553a5b71c/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | Artboard 46 2 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import App from './App.vue'; 3 | import router from './router'; 4 | import vuetify from './plugins/vuetify'; 5 | 6 | Vue.config.productionTip = false; 7 | 8 | new Vue({ 9 | router, 10 | vuetify, 11 | render: (h) => h(App), 12 | }).$mount('#app'); 13 | -------------------------------------------------------------------------------- /src/plugins/vuetify.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuetify from 'vuetify/lib/framework'; 3 | 4 | Vue.use(Vuetify); 5 | 6 | export default new Vuetify({}); 7 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import VueRouter from 'vue-router'; 3 | import Home from '../views/Home.vue'; 4 | 5 | Vue.use(VueRouter); 6 | 7 | const routes = [ 8 | { 9 | path: '/', 10 | name: 'Home', 11 | component: Home, 12 | children: [ 13 | { 14 | path: '/:kind', 15 | component: Home, 16 | }, 17 | { path: '/:kind/:tag', component: Home }, 18 | ], 19 | props: true, 20 | }, 21 | ]; 22 | 23 | const router = new VueRouter({ 24 | mode: 'history', 25 | base: process.env.BASE_URL, 26 | routes, 27 | }); 28 | 29 | export default router; 30 | -------------------------------------------------------------------------------- /src/scraper/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const data = JSON.parse(fs.readFileSync('./data/projects.json', 'utf-8')); 3 | const readme = './README.md'; 4 | const startComment = ''; 5 | const endComment = ''; 6 | const pattern = new RegExp(`${startComment}[\\s\\S]*${endComment}`, 'gm'); 7 | 8 | const groupBy = (list, key) => { 9 | return list.reduce(function (rv, x) { 10 | const val = rv[x[key]]; 11 | rv[x[key]] = val || []; 12 | rv[x[key]].push(x); 13 | return rv; 14 | }, {}); 15 | }; 16 | 17 | const sortBy = (a, b) => { 18 | const levelOrder = ['basic', 'intermediate', 'advanced']; 19 | 20 | const aIndex = levelOrder.indexOf(a); 21 | const bIndex = levelOrder.indexOf(b); 22 | return aIndex - bIndex; 23 | }; 24 | 25 | const capitalize = (s) => { 26 | if (typeof s !== 'string') return ''; 27 | return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase(); 28 | }; 29 | 30 | const wordCapitalize = (s) => { 31 | const text = s.split(' ').filter((t) => t !== ''); 32 | return text.map((t) => capitalize(t)).join(' '); 33 | }; 34 | 35 | const categories = groupBy(data, 'category'); 36 | 37 | const writeToFile = (text) => { 38 | fs.readFile(readme, 'utf8', function (err, context) { 39 | if (err) { 40 | return console.log(err); 41 | } 42 | const replacement = `${startComment}\n${text}\n${endComment}`; 43 | const newContext = context.replace(pattern, replacement); 44 | 45 | fs.writeFileSync(readme, newContext, 'utf8'); 46 | }); 47 | }; 48 | 49 | let categoriesText = ''; 50 | Object.keys(categories) 51 | .sort() 52 | .forEach((c) => { 53 | const list = categories[c]; 54 | const levels = groupBy(list, 'level'); 55 | const sorted = Object.keys(levels).sort((a, b) => sortBy(a, b)); 56 | const filePrefix = c.toUpperCase().replace(/ /, '_'); 57 | const mapped = sorted.map((s) => { 58 | return `[${wordCapitalize( 59 | s 60 | )}](./docs/${filePrefix}_${s.toUpperCase()}.md)`; 61 | }); 62 | const category = wordCapitalize(c); 63 | categoriesText += `- ${category}\n - ${mapped.join('\n - ')}\n`; 64 | sorted.forEach((l) => { 65 | const project = levels[l] 66 | .map((p) => { 67 | return ( 68 | ` - [${p.display}](https://github.com/${p.author}/${p.name}) - ` + 69 | `[@${p.author}](https://github.com/${p.author})` 70 | ); 71 | }) 72 | .join('\n'); 73 | const level = `${capitalize(l)}`; 74 | const current = `# ${category} - ${level}\n${project}`; 75 | fs.writeFileSync( 76 | `./docs/${filePrefix}_${l.toUpperCase()}.md`, 77 | current, 78 | 'utf-8' 79 | ); 80 | }); 81 | }); 82 | 83 | writeToFile(categoriesText); 84 | -------------------------------------------------------------------------------- /src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | IdeaHub 7 | 8 | 9 | 10 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | Top Tags 30 | 36 | 37 | #{{ tag.name }} 38 | 39 | 40 | 41 | 42 | 43 | Links 44 | 50 | 51 | {{ link.display }} 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 65 | 66 | 69 | 73 | 74 | 75 | 81 | 86 | mdi-code-tags 87 | 88 | Search Projects for {{ item.tags[0] }} 91 | 92 | 98 | mdi-github 99 | View on Github 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 237 | 238 | 246 | -------------------------------------------------------------------------------- /tests/unit/data/index.spec.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const projects = JSON.parse(fs.readFileSync('./data/projects.json', 'utf-8')); 3 | const ideas = JSON.parse(fs.readFileSync('./data/ideas.json', 'utf-8')); 4 | const levels = ['basic', 'intermediate', 'advanced']; 5 | 6 | describe('Data', () => { 7 | it('Project list should contains the correct level', () => { 8 | projects.forEach((project) => { 9 | expect(levels.includes(project.level)).toBe(true); 10 | }); 11 | }); 12 | 13 | it('Ideas list should contains the correct level', () => { 14 | ideas.forEach((project) => { 15 | expect(levels.includes(project.level)).toBe(true); 16 | }); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | transpileDependencies: ['vuetify'], 3 | }; 4 | --------------------------------------------------------------------------------