An open API service indexing awesome lists of open source software.

https://github.com/mindful-ai-assistants/tabletennis-scorekeeper

πŸ“ Table Tennis Scoring App - A smart app to manage table tennis scores and player rankings β€” built as a final project for the NoSQL course (PUC-SP).
https://github.com/mindful-ai-assistants/tabletennis-scorekeeper

no-sql-databases no-sql-schema-design python

Last synced: 5 months ago
JSON representation

πŸ“ Table Tennis Scoring App - A smart app to manage table tennis scores and player rankings β€” built as a final project for the NoSQL course (PUC-SP).

Awesome Lists containing this project

README

          


\[[πŸ‡§πŸ‡· PortuguΓͺs](README.pt_BR.md)\] \[**[πŸ‡ΊπŸ‡Έ English](README.md)**\]



##

πŸ“ SmartPing: Table Tennis Score and Tournament Assistant App
####

Table Tennis Scoring App; A smart app to manage table tennis scores and player rankings. Built as a final project for the NoSQL course (PUC-SP).




####

[![Sponsor Mindful AI Assistants](https://img.shields.io/badge/Sponsor-Mindful%20AI%20%20Assistants-brightgreen?logo=GitHub)](https://github.com/sponsors/Mindful-AI-Assistants)






Currently, the project is in the prototype stage, with the potential to achieve full automation of scoring and player ranking through the implementation of sensors on the table and the ball. These sensors would enable automatic point counting, although human supervision (referee) remains essential to ensure accuracy and prevent errors.

The focus is on simplifying and making the work of sports event organizers more efficient, providing a modern and reliable digital environment for competition management.

The system allows:
- Facilitate point counting in matches;
- Allow team creation and management;
- In the future, enable tournament creation and control;
- Optimize player ranking, making organizers' work simpler and more efficient.
- Dynamic viewing and updating of athlete rankings.


## 3. Extension Activity

To fulfill the Curricular Unit, we completed the following stages:

| Stage | Description |
|-------------------------------------|---------------------------------------------------------------------------------------------|
| Actor Identification (Personas) | Defined system user profiles: players, referees, organizers, and audience. |
| Conceptual Model | Construction of entity-relationship diagram defining main entities and relationships. |
| Logical Model | Translation from conceptual to logical model (relational/NoSQL) for database structuring. |
| Database Population | Insertion of at least 5 real records for system testing and validation. |
| Physical Model | Definition of physical database model (storage, indexes, partitioning). |
| Question and Query Creation | Development of 10 key database questions with corresponding query implementations. |
| App Development | Application construction for database interaction (registration, scoring, visualization). |


## 4. Personas (Involved Actors)

| Persona | Description |
|------------------|---------------------------------------------------------------------------------------------|
| Player | Athlete participating in matches, needs to register data, scores, and check rankings. |
| Referee | Responsible for match supervision and automated scoring validation. |
| Organizer | Manages tournaments, creates teams/matches, controls game flow. |
| Spectator | Follows matches/rankings with access to public tournament info. |
| Administrator | Privileged user managing sensitive data, validating users, and administrative codes. |


## 5. Developed Models

### 5.1 Conceptual Model
Entity-Relationship Diagram (ER) including:
- Entities: Player, Team, Match, Tournament, Score, Referee.
- Relationships: Player belongs to Team, Match involves Players, Tournament contains Matches, Referee supervises Match, Score assigned to Player in Match.

### 5.2 Logical Model
Conversion of ER model to document-oriented NoSQL structures, storing players, teams, matches, and results in specific collections.

### 5.3 Physical Model
Physical implementation in chosen NoSQL database (e.g., MongoDB), with index definition for fast querying by player/matches/tournaments, plus version control and data auditing structures.


## 6. Database Population

- Initial records inserted for 5 players, teams, and sample matches for system testing/validation.



## 7. Created Queries
Development of 10 essential database operation questions, such as:
- Who are the players in a specific tournament?
- What is the current player ranking?
- Which matches have been completed?
- What is a player's match history?
- How many points did each player score in a specific match?
- Which teams are registered and their members?
- Who was the referee for a match?
- Which players have no team?
- Which players have equal scores?
- Which matches are scheduled for next week?

All questions have corresponding queries implemented for fast, efficient access.


## 8. Application

The app features an intuitive GUI built with Flet, enabling:

- Player/team/tournament registration;
- Match selection and real-time scoring control;
- Detailed athlete ranking visualization;
- Light/dark theme toggling;
- Secure password access for players/administrators.


## 9. Final Considerations

This project combines modern NoSQL database technologies and application development to solve a real-world sports management problem. The database-app integration delivers a robust, functional experience expandable through future improvements like full sensor automation and IoT device integration.


## 10. πŸ§‘πŸΌβ€πŸš€ [Team Members]()

| Name | Role |
|-------------------------|--------------------------------------------------|
| **Andson Ribeiro** | [Github](https://github.com/andsonandreribeiro09) - [Contact]() |
| **Fabiana 🧬 Campanari** | [Github](https://github.com/FabianaCampanari) - [Contact Hub](https://linktr.ee/fabianacampanari) |
| **Gabriel Moraes** | [Github]() - [Contact]() |
| **Leonardo X Fernandes** | [Github](https://github.com/LeonardoXF) - [Contact]() |
| **Pedro Vyctor Almeida** | [Github](https://github.com/ppvyctor) - [Contact]() |

## 11. References

- Official MongoDB Documentation
- Flet Library Documentation
- PUC-SP - CDIA Course Material - NoSQL Databases


**Developed by:**
PUC-SP Team - Data Science and Humanistic AI - CDIA - NoSQL Databases








## πŸ’Œ [Let the data flow... Ping Us]()

- πŸ‘©πŸ»β€πŸš€ **Fabiana Campanari** - [Shoot me an email](mailto:fabicampanari@proton.me)

- πŸ§‘πŸΌβ€πŸš€ **PedroVyctor** - [Hit me up by email](mailto:pedro.vyctor00@gmail.com)

- πŸ‘¨πŸ½β€πŸš€ **Andson Ribeiro** - [Slide into my inbox]()


####

πŸ›ΈΰΉ‹ My Contacts [Hub](https://linktr.ee/fabianacampanari)


###



────────────── βŠΉπŸ”­ΰΉ‹ ──────────────


➣➒➀ Back to Top



Voltar ao topo

#

#####

Copyright 2025 Mindful-AI-Assistants. Code released under the [MIT license.]( https://github.com/Mindful-AI-Assistants/.github/blob/ad6948fdec771e022d49cd96f99024fcc7f1106a/LICENSE)