Skip to content

rodrigocastro27/SemesterprojectSS25

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the respository for Hidenberg!

In this repository we have the source code and documentation for a real-time mobile game built using Flutter (Dart) for the frontend and C# (.NET) for the backend server.

This project brings the classic childhood game of Hide & Seek into the digital world, allowing players to join multiplayer sessions, take on the role of a hider or a seeker, and play in real time with others over a network connection.

📚 Table of Contents

🎮 Gameplay Overview

The game allows multiple players to:

  • 📲 Connect via mobile devices using a Flutter app
  • 🌐 Join or host game lobbies
  • 👤 Be assigned as a hider or seeker
  • 🗺️ Navigate a map and look for players via pings
  • 🧩 Complete interactive teamworking tasks to unlock special abilities that give players an edge during the game (e.g., extra pings, make phone sounds, etc.).
  • 🎯 Eliminate opponents by scanning a QR codes (e.g., Seekers scan Hiders' QR codes to tag them out).

📁 Repository Structure

The structure of the repository is the following, only showing the relevant files and folders for the development and understanding of the project:

/
├── semester_project/     # Flutter mobile app
│   ├── pubspec.yaml          
│   ├── lib/                  # code files
│   │   ├── main.dart
│   │   └── ...
│   ├── assets/               
├── server/               # C# server project
│   ├── WebApplication1/      # .NET program
│   │   ├── Program.cs
│   │   └── ...
├── docs/                 # Extended documentation
│   ├── architecture.md
│   ├── api/
│   │   ├── overview.md
│   │   ├── flutter_api.md
│   │   └── server_api.md
│   ├── setup/
│   │   ├── flutter-setup.md
│   │   └── server-setup.md
├── assets/				  # assets for the documentation
├── FUTUREWORK.md 
└── README.md

🛠️ Tech Stack

📱 Frontend (Mobile App)

  • Framework: Flutter (Dart)
  • Device Identifiaction: uuid
  • State Management: provider (to share data across the app)
  • Routing & Navigation:
    • go_router (routing package to handle navigation between screens)
    • framework (Flutter default)
  • QR Scanning: qr_flutter (for generating QR codes)
  • Geolocation & Map Displaying:
    • flutter_map (to display interactive maps)
    • geolocator (to access the device's real-time GPS location)
    • latlong2 (data class for geographic coordinates, used with flutter_map and geolocator)
  • Networking:
    • dart:io (for creating and managing the WebSocket connections via WebSocket.connect)
    • dart_async (to handle connection retries with Timer)
  • Messaging:
    • dart:convert (for encoding and decoding JSON data with jsonEncode and jsonDecode)

For the non-native dart libraries, they are all included in the pubspect.yaml file in the frontend semester_project folder:

dependencies:
  flutter:
    sdk: flutter 

  # Device identification
  uuid: ^4.4.2  

  # State Management
  provider: ^6.1.1
  
 # and others ...

🖥️ Backend (Server)

  • Language: C#
  • Framework: ASP.NET Core (Web API)
  • Database: System.Data.SQLite
  • Real-time Communication:
    • WebSockets (System.Net.WebSockets)
    • Concurrent Environaments with thread-safe collection classes (System.Collections.Concurrent)
  • Messaging:
    • General text manipulation (System.Text)
    • JSON serialization and deserialization (System.Text-Json)

📄Documentation

The documentation is all written in the docs folder of the repository.

The architecture of the project is explained in the architecture file.

The api folder contains an overview of the key features of the app, as well as a description of the classes and methods for both:

Get Started

The guides to setup the computer to run both the Flutter application and the server are in the files:

Future Work

The game in this repository is far away from considered finished. There is still a lot to improve and implement. See more details on what can be the next line of work in FUTUREWORK.

📬Contact

For any questions, you can contact us in any of the following emails:


Thank you for checking out this project, and hopefully, continuing it! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors