nodes 2019 modeling a tournament in neo4j
play

NODES 2019 Modeling a Tournament in Neo4j Michael McKenzie 6th - PowerPoint PPT Presentation

NODES 2019 Modeling a Tournament in Neo4j Michael McKenzie 6th Degree UFAF Black Belt October 10, 2019 Problem United Fighting Arts Federation (UFAF) Martial arts organization founded by Chuck Norris International Training


  1. NODES 2019 Modeling a Tournament in Neo4j Michael McKenzie 6th Degree UFAF Black Belt October 10, 2019

  2. Problem ● United Fighting Arts Federation (UFAF) ○ Martial arts organization founded by Chuck Norris ● International Training Convention (ITC) ○ Hosted annually in Las Vegas, NV, USA ○ Seminars ○ Tournament ■ 10 Rings ■ 257 Divisions !!!! Currently organized by hand with spreadsheets and manual manipulation Can we improve the scheduling process and efficiency?

  3. :Event :CONTAINS :HAS_REGIS :Registr :Divisio :COMPETES :Person :OCCURS_IN :Ring :NEXT_TO TERED ation n _IN Steps #1 Competitor registers #2 Assign competitor to division #3 Assign divisions to rings #4 Assign judges to rings 1. Person registers 2. Assigned to divisions 3. Divisions assigned to rings 4. Judges assigned to rings

  4. Schema

  5. Problem Ring 1 Ring 2 Ring 3 Ring 4 Ring 10 Ring 5 Ring 9 Ring 8 Ring 7 Ring 6

  6. Scheduling Rules & Division “Groups” ● Division “Groups” ● Order Division “Groups” ○ Age Divisions ○ Sex ○ # competitors per division ○ Rank Group ○ Largest to smallest ■ Beginner ○ Sparring always last ■ Intermediate ● Order Division “Groups” ■ Advanced ○ Total # competitors ■ Black Belt ○ Largest to smallest ● Division Types ○ Traditional Kata ○ Open Kata ○ Weapons Kata ○ Sparring

  7. Scheduling Rules & Division Groups ● Group Characteristics Example: ○ Age ○ Sex Age: 16-17 ○ Rank Type Sex: Male ■ Beginner Rank Type: Black Belt ■ Intermediate Division Types: ■ Advanced Traditional Kata (5) ■ Black Belt Open Kata (3) ● Division Types Weapons Kata (7) ○ Traditional Kata Sparring (8) ○ Open Kata ○ Weapons Kata ○ Sparring

  8. Scheduling Rules & Division Groups ● Order Divisions within Group ○ # competitors per division ○ Largest to smallest ○ Sparring always last Example: “Unsorted” Example: “Sorted” Age: 16-17 Age: 16-17 Sex: Male Sex: Male Rank Type: Black Belt Rank Type: Black Belt Division Types: Division Types: Traditional Kata (5) Weapons Kata (7) Open Kata (3) Traditional Kata (5) Weapons Kata (7) Open Kata (3) Sparring (8) Sparring (8)

  9. Ring Assignments ● Order Groups ○ Total # competitors Ring 1 Ring 2 Ring 3 Ring 4 ∑(all comps in divs in group) ○ Largest to smallest Ring 10 Ring 5 ● Cross-Walk Ring 9 Ring 8 Ring 7 Ring 6

  10. GRANDstack Application

  11. Next Steps... ● Complete GRANDstack prototype application ● Connect registration to UFAF website ○ Limit school affiliation to predefined schools ○ Enforce logic restrictions based on forms selections ● Create admin & user roles ● (No current metrics) Collect metrics to adjust assigning divisions ● Assign judges ● Competitor facing UI ○ Competitor web-app ○ Tournament dashboard

  12. About me... Programmer at CALIBRE Systems, Inc. GraphDB DC Organizer (www.meetup.com/GraphDB-DC/) Washington, DC, USA Contact web: mckenzma.com LinkedIn: www.linkedin.com/in/mckenzma/ GitHub: github.com/mckenzma Neo4j Community: community.neo4j.com/u/mckenzma/summary (graphs)-[:ARE]->(everywhere)

  13. Hunger Games Questions for “Modeling a Tournament in Neo4j” 1. Easy: Who is the Founder of the United Fighting Arts Federation 2. Medium: How many divisions are there? a. 100 b. 257 c. 365 3. Hard: What is the name of the method currently being used to assign division groups to rings? Answer here: r.neo4j.com/hunger-games

Recommend


More recommend