├── tags ├── chau.json ├── alex.json ├── chris.json ├── christina.json ├── panyeung.json ├── rebecca.json ├── vivian.json └── brice.json ├── README.md ├── index.html ├── .circleci └── config.yml ├── test.py └── CODE_OF_CONDUCT.md /tags/chau.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,1,0,0,0,1,0], 4 | [0,1,1,0,1,1,0], 5 | [0,1,1,1,1,1,0], 6 | [0,1,0,1,0,1,0], 7 | [0,1,1,1,1,1,0], 8 | [0,1,0,0,0,1,0], 9 | [0,0,1,1,1,0,0] 10 | ], 11 | 12 | "color": "black", 13 | 14 | "name":"Chau Vu" 15 | } -------------------------------------------------------------------------------- /tags/alex.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,0,1,1,1,0,0], 4 | [0,0,1,1,1,0,0], 5 | [0,0,1,1,1,0,0], 6 | [0,0,1,1,1,0,0], 7 | [0,0,1,1,1,0,0], 8 | [0,0,1,1,1,0,0], 9 | [0,0,1,1,1,0,0] 10 | ], 11 | 12 | "color": "#007acc", 13 | 14 | "name":"Alex Garcia" 15 | } 16 | -------------------------------------------------------------------------------- /tags/chris.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,1,1,1,1,0,0], 4 | [1,0,1,0,1,0,0], 5 | [1,1,1,1,1,0,1], 6 | [0,0,0,1,1,1,1], 7 | [1,1,1,1,1,0,0], 8 | [0,1,1,1,1,0,0], 9 | [0,0,1,0,1,0,0] 10 | ], 11 | 12 | "color": "#0fbcf9", 13 | 14 | "name":"Chris Robles" 15 | } 16 | -------------------------------------------------------------------------------- /tags/christina.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,0,0,0,0,0,0], 4 | [0,1,1,0,1,1,0], 5 | [1,0,0,1,0,0,1], 6 | [0,1,0,0,0,1,0], 7 | [0,0,1,0,1,0,0], 8 | [0,0,0,1,0,0,0], 9 | [0,0,0,0,0,0,0] 10 | ], 11 | 12 | "color": "rgb(255, 255, 153)", 13 | 14 | "name":"Christina" 15 | } 16 | -------------------------------------------------------------------------------- /tags/panyeung.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,0,0,0,0,0,0], 4 | [0,1,1,1,1,1,0], 5 | [0,1,0,0,0,1,0], 6 | [0,1,0,0,0,1,0], 7 | [0,1,1,1,1,1,0], 8 | [0,1,0,0,0,0,0], 9 | [0,1,0,0,0,0,0] 10 | ], 11 | 12 | "color": "rgb(234, 28, 44)", 13 | 14 | "name":"Pan Yeung" 15 | } 16 | -------------------------------------------------------------------------------- /tags/rebecca.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [1,0,0,0,0,0,1], 4 | [0,1,0,0,0,1,0], 5 | [0,0,1,0,1,0,0], 6 | [0,0,0,1,0,0,0], 7 | [0,0,1,0,1,0,0], 8 | [0,1,0,0,0,1,0], 9 | [1,0,0,0,0,0,1] 10 | ], 11 | 12 | "color": "rgb(124, 39, 940)", 13 | 14 | "name":"rebecca chan" 15 | } 16 | -------------------------------------------------------------------------------- /tags/vivian.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,1,1,0,1,1,0], 4 | [0,1,1,0,1,1,0], 5 | [0,0,0,0,0,0,0], 6 | [1,0,0,0,0,0,1], 7 | [1,0,0,0,0,0,1], 8 | [1,0,0,0,0,0,1], 9 | [1,1,1,1,1,1,1] 10 | ], 11 | 12 | "color": "rgb(255, 179, 102)", 13 | 14 | "name":"Vivian Lee" 15 | } 16 | -------------------------------------------------------------------------------- /tags/brice.json: -------------------------------------------------------------------------------- 1 | { 2 | "grid":[ 3 | [0,0,0,0,0,0,0], 4 | [0,1,0,0,0,1,0], 5 | [0,1,0,0,0,1,0], 6 | [0,0,0,0,0,0,0], 7 | [1,0,0,0,0,0,1], 8 | [0,1,0,0,0,1,0], 9 | [0,0,1,1,1,0,0] 10 | ], 11 | 12 | "color": "rgb(800, 100, 100)", 13 | 14 | "name":"Brice Lau" 15 | } 16 | 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Graffiti Wall [![CircleCI](https://circleci.com/gh/os-ucsd/graffiti-wall/tree/master.svg?style=svg)](https://circleci.com/gh/os-ucsd/graffiti-wall/tree/master) 2 | A wall that you can tag to learn about Git and Pull Requests. 3 | 4 | A fork of the original project from [ECE USC](https://github.com/eceusc/graffiti-wall)! 5 | 6 | ## Tutorial 7 | Check out the tutorial here: [Git Gud - Graffiti Wall Tutorial](https://paper.dropbox.com/doc/GIT-GUD-Graffiti-Wall-Tutorial-O0IedwD2H2kAM7ZT8y5NI) 8 | test 9 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Graffiti Wall - ECE USC Open Source 4 | 5 | 6 | 7 |
8 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # Check https://circleci.com/docs/2.0/language-python/ for more details 2 | 3 | version: 2 4 | jobs: 5 | build: 6 | docker: 7 | # specify the version you desire here 8 | # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` 9 | - image: circleci/python:3.6.1 10 | 11 | # Specify service dependencies here if necessary 12 | # CircleCI maintains a library of pre-built images 13 | # documented at https://circleci.com/docs/2.0/circleci-images/ 14 | # - image: circleci/postgres:9.4 15 | 16 | working_directory: ~/repo 17 | 18 | steps: 19 | - checkout 20 | 21 | - run: 22 | name: run tests 23 | command: | 24 | python test.py 25 | 26 | - store_artifacts: 27 | path: test-reports 28 | destination: test-reports 29 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import json, os 2 | import unittest 3 | 4 | class TestTags(unittest.TestCase): 5 | 6 | def setUp(self): 7 | self.directory = os.path.join(os.path.dirname(__file__), './tags') 8 | self.tag_file_names = os.listdir(self.directory) 9 | 10 | def tag_name_test(self, tag): 11 | name = tag.get('name') 12 | 13 | self.assertIsNotNone(name) 14 | self.assertIs(type(name), str) 15 | self.assertTrue(len(name) > 0) 16 | 17 | def tag_color_test(self, tag): 18 | color = tag.get('color') 19 | 20 | self.assertIsNotNone(color) 21 | self.assertIs(type(color), str) 22 | self.assertTrue(len(color) > 0) 23 | 24 | def tag_grid_test(self, tag): 25 | grid = tag.get('grid') 26 | 27 | self.assertIsNotNone(grid) 28 | self.assertIs(type(grid), list) 29 | self.assertEqual(len(grid), 7) 30 | 31 | for row in grid: 32 | self.assertEqual(len(row), 7) 33 | 34 | def tag_test(self, tag): 35 | file_name = (os.path.join(self.directory, tag)) 36 | self.assertTrue(file_name.endswith('.json')) 37 | 38 | with open(file_name, 'r') as f: 39 | try: 40 | tag_obj = json.load(f) 41 | except ValueError: 42 | self.fail( 43 | (('The tag "{tag}" at "{file_name}" can\'t be decoded as JSON!' 44 | ' Double check your JSON file structure.')).format(tag=tag,file_name=file_name) 45 | ) 46 | 47 | self.assertIsNotNone(tag_obj) 48 | self.assertIs(type(tag_obj), dict) 49 | 50 | self.tag_name_test(tag_obj) 51 | self.tag_color_test(tag_obj) 52 | self.tag_grid_test(tag_obj) 53 | 54 | def test_tags(self): 55 | for tag in self.tag_file_names: 56 | self.tag_test(tag) 57 | 58 | if __name__ == '__main__': 59 | unittest.main() 60 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## UC San Diego Principles of Community 4 | 5 | As a student-ran organization within UC San Diego, all work done in the name of 6 | an Open Source project should be done with the 7 | [UC San Diego Principles of Community](https://ucsd.edu/about/principles.html) 8 | in mind. Failure to do so will result in the enforcement of this code described below. 9 | 10 | ## Our Pledge 11 | 12 | In the interest of fostering an open and welcoming environment, we as 13 | contributors and maintainers pledge to making participation in our project and 14 | our community a harassment-free experience for everyone, regardless of age, body 15 | size, disability, ethnicity, sex characteristics, gender identity and expression, 16 | level of experience, education, socio-economic status, nationality, personal 17 | appearance, race, religion, or sexual identity and orientation. 18 | 19 | ## Our Standards 20 | 21 | Examples of behavior that contributes to creating a positive environment 22 | include: 23 | 24 | * Using welcoming and inclusive language 25 | * Being respectful of differing viewpoints and experiences 26 | * Gracefully accepting constructive criticism 27 | * Focusing on what is best for the community 28 | * Showing empathy towards other community members 29 | 30 | Examples of unacceptable behavior by participants include: 31 | 32 | * The use of sexualized language or imagery and unwelcome sexual attention or 33 | advances 34 | * Trolling, insulting/derogatory comments, and personal or political attacks 35 | * Public or private harassment 36 | * Publishing others' private information, such as a physical or electronic 37 | address, without explicit permission 38 | * Other conduct which could reasonably be considered inappropriate in a 39 | professional setting 40 | 41 | ## Our Responsibilities 42 | 43 | Project maintainers are responsible for clarifying the standards of acceptable 44 | behavior and are expected to take appropriate and fair corrective action in 45 | response to any instances of unacceptable behavior. 46 | 47 | Project maintainers have the right and responsibility to remove, edit, or 48 | reject comments, commits, code, wiki edits, issues, and other contributions 49 | that are not aligned to this Code of Conduct, or to ban temporarily or 50 | permanently any contributor for other behaviors that they deem inappropriate, 51 | threatening, offensive, or harmful. 52 | 53 | ## Scope 54 | 55 | This Code of Conduct applies both within project spaces and in public spaces 56 | when an individual is representing the project or its community. Examples of 57 | representing a project or community include using an official project e-mail 58 | address, posting via an official social media account, or acting as an appointed 59 | representative at an online or offline event. Representation of a project may be 60 | further defined and clarified by project maintainers. 61 | 62 | ## Enforcement 63 | 64 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 65 | reported by contacting the project team at eceusc+opensource@eng.ucsd.edu. All 66 | complaints will be reviewed and investigated and will result in a response that 67 | is deemed necessary and appropriate to the circumstances. The project team is 68 | obligated to maintain confidentiality with regard to the reporter of an incident. 69 | Further details of specific enforcement policies may be posted separately. 70 | 71 | Project maintainers who do not follow or enforce the Code of Conduct in good 72 | faith may face temporary or permanent repercussions as determined by other 73 | members of the project's leadership. 74 | 75 | ## Attribution 76 | 77 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 78 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 79 | 80 | [homepage]: https://www.contributor-covenant.org 81 | --------------------------------------------------------------------------------