Code Monkey home page Code Monkey logo

teamagochi's Introduction

Teamagochi - てぃーまごっち

Description

Teamagochi is a synchronized always-online pet simulator with multiplayer functionality​ by the RIOT Project SoSe24 team.

It consists of a physical device (Node), web backend and web/mobile frontend.

Contributing

Cloning

Make sure to clone the repository with the --recursive flag to also clone the submodules.

git clone --recursive [email protected]:smartuni/teamagochi.git

or if you have already cloned the repository, you can run:

git submodule update --init --recursive

Workflow

  • Create a new branch for your feature or bugfix (git checkout -b feature/my-feature)
  • Commit your changes (You can use VSCode or Github Desktop for an easier way to commit)
  • Push to the branch (git push origin feature/my-feature)
  • Create a Pull Request
  • Ask somebody (preferably a team member) to review your code
  • Wait for the reviewer to approve your PR (or ask for changes)
  • Merge your PR

Avoiding conflicts

  • Make sure to keep each branch concise and focused on a single feature or bugfix
  • Avoid working on multiple projects at the same time
  • Merge changes from the main branch into your feature branch regularly (git pull origin main)
  • Communicate with your team members about what you are working on

teamagochi's People

Contributors

annsanns avatar ozfox avatar m18f6fhc avatar tommyx5 avatar mrkevinweiss avatar eritleidet avatar moritzholzer avatar nilslabs avatar

Stargazers

MerlinT. avatar  avatar  avatar

Watchers

Cenk Gündoğan avatar Thomas C. Schmidt avatar  avatar Leandro Lanzieri avatar Peter Kietzmann avatar Sebastian Meiling avatar  avatar

teamagochi's Issues

Case Mockup

When all sensors and actuators are evaluated

UI/ Display

create the design and menu flow for the display
and get it to work on the display

get the backlight control working, PIN is soldered. PIN #3 can controled with PWM Signal

maybe implement LVGL

!! Every event should have its log_write(LOG_DEBUG) !!

Changing your pet

  • Frontend UI to change pets
  • Backend request to Node
  • Node has to respond to request and change the pet

Pet Creator

The frontend should have a pet creation system that allows you to decide:

  • Colour
  • Pet Type (Frog, etc.)

Highscores

The frontend should showcase highscores based on the happiness or other stats provided by the backend

GPS

How do we connect a sd card and access it.
Which GPS sensor can we use.

PCB Process

  • resistors on the back
  • front 3.3V / back GND
  • mosfet on the back, diode to the top
  • add debounce to the switches (Capacitors)
  • better schemetic with label connections

Epic: Registration Process

  1. Device connects to Server/Router
  2. It broadcasts/showcases a unique ID
  3. The backend checks whether the ID exists
  4. If it does, it'll send the pet info to the device
  5. If it doesn't, it'll send a registration code that will be shown on the device
  6. User enters code into the frontend
  7. User creates pet
  8. Pet gets uploaded to the device

storage/ sdcard

We need some type of persistent storage (mostly for the shared ID)

Sensors Interface

create functions for IRQ and send events
before the dispatcher works you can just LOG_DEBUG

!! Every event should have its log_write(LOG_DEBUG) !!

Actuator Interface

create functions for using the actuators
before the dispatcher works you can just LOG_DEBUG

!! Every event should have its log_write(LOG_DEBUG) !!

Node: Mutex Guard Dispatcher Sub List

Currently (in theory) two threads could ask the dispatcher to be subscribed to a new event at the same time and cause chaos. In reality this will probably not happen, esp. since normally subscriptions only happen in the main thread but it'd still make sense to properly guard the list.

Happiness Leveling System

Increasing the happiness over a longer duration should increase the overall possible happiness. This should be done on the backend.

Cross: Presentation II

Some points to include:


# Login Process
# Frontend Mockup
# Web Backend Authetnication showcase
# Hardware Details
# Flow Diagram of App (Node)
# Lower M2M Objects (Node)
# Timeline

create the Communication Adapter

Lwm2m wrapper and create events from them
make and get changes on the server

!! Every event should have its log_write(LOG_DEBUG) !!

Clarify Border router connection

Which protocol
How to communicate with border router
How does the border router works, with what api we communicate with the backend team?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.