├── .github ├── FUNDING.yml ├── logo.png ├── metrics.json └── workflows │ └── main.yml ├── ducks ├── beak │ └── 0.svg ├── body │ └── 0.svg ├── eyes │ ├── 0.svg │ ├── 1.svg │ ├── 2.svg │ └── 3.svg ├── hat │ ├── 1.svg │ ├── 10.svg │ ├── 11.svg │ ├── 2.svg │ ├── 3.svg │ ├── 4.svg │ ├── 5.svg │ ├── 6.svg │ ├── 7.svg │ ├── 8.svg │ └── 9.svg ├── items │ ├── 1.svg │ ├── 2.svg │ └── 3.svg ├── smoke │ ├── 5.svg │ ├── 6.svg │ └── 7.svg └── wing │ └── 0.svg ├── license.md ├── package.json ├── readme.md ├── rules.md └── src ├── DuckColorConstants.js ├── DuckGenerator.js ├── DuckStringParser.js ├── SVGUtilities.js └── index.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: fairfieldprogramming 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /.github/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fairfield-programming/ducks/dfcb6f7602658b66cbf1508e0b3e333a6ba69732/.github/logo.png -------------------------------------------------------------------------------- /.github/metrics.json: -------------------------------------------------------------------------------- 1 | { 2 | "directDependenciesCount": 0, 3 | "indirectDependenciesCount": 0, 4 | "commentCount": 85, 5 | "lineCount": 514, 6 | "fileCount": 33, 7 | "score": 100, 8 | "grade": "A+" 9 | } -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Lint, Prettify, Test, and Score Code 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - name: Run the EaF Linter 15 | run: npx eaf-linter 16 | 17 | - name: Commit Changes 18 | uses: EndBug/add-and-commit@v7 19 | with: 20 | messages: 🦆 Code Fixed with EaF-Lint! 21 | -------------------------------------------------------------------------------- /ducks/beak/0.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/body/0.svg: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /ducks/eyes/0.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/eyes/1.svg: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /ducks/eyes/2.svg: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /ducks/eyes/3.svg: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /ducks/hat/1.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ducks/hat/10.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/hat/11.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/hat/2.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/hat/3.svg: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /ducks/hat/4.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ducks/hat/5.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ducks/hat/6.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ducks/hat/7.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /ducks/hat/8.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/hat/9.svg: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /ducks/items/1.svg: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /ducks/items/2.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/items/3.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/smoke/5.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/smoke/6.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/smoke/7.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ducks/wing/0.svg: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | Copyright 2022 William McGonagle 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "duckgen", 3 | "version": "1.1.1", 4 | "description": "The package for dealing with all the ducks created and managed by the Fairfield Programming Association.", 5 | "main": "./src/index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "patch-release": "npm version patch && npm publish && git push --follow-tags" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/fairfield-programming/ducks.git" 13 | }, 14 | "keywords": [ 15 | "animal", 16 | "duck", 17 | "ducks", 18 | "svg", 19 | "generator", 20 | "procedural", 21 | "images", 22 | "profile", 23 | "picture" 24 | ], 25 | "author": "William McGonagle", 26 | "license": "ISC", 27 | "bugs": { 28 | "url": "https://github.com/fairfield-programming/ducks/issues" 29 | }, 30 | "homepage": "https://github.com/fairfield-programming/ducks#readme" 31 | } 32 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | #  2 | 3 |  4 |  5 | 6 | ## Download 7 | 8 | Since the Fairfield Programming Association's duck generator is built on top of node.js and npm, you need to have both of those installed as prerequisites. After that, to download the project, you have to run the below command. From there, you can include it in your node.js code by using the import or require system. 9 | 10 | ```bash 11 | npm install duckgen 12 | ``` 13 | 14 | ## Features 15 | 16 | We didn't want to use people's faces for the profile pictures. This was for three reasons: we didn't want to pay for hosting the image files, we were scared of what people would upload, and since our main audience is minors, we didn't want their faces to be publicly available. To solve these problems, we decided to use rubber duck avatars instead of photos. Users are able to customize their ducks by adding glasses, hats, items, etc (and they can even set their own colors). 17 | 18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |