All Projects → alfredbaudisch → Godello

alfredbaudisch / Godello

Licence: mit
Trello inspired kanban board made with the Godot Engine and GDScript, powered by an online real-time collaborative backend (Elixir and Phoenix Channels)

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Godello

WhatChat
A web chat application clone of Whatsapp web using Elixir / Phoenix, VueJs and PostgreSQL.
Stars: ✭ 32 (-88.28%)
Mutual labels:  elixir-phoenix, phoenix-framework
Godot Go
Go language bindings for the Godot Engine's GDNative API.
Stars: ✭ 254 (-6.96%)
Mutual labels:  godot, godot-engine
MySQL Module
MySQL connector to Godot Engine.
Stars: ✭ 30 (-89.01%)
Mutual labels:  godot, godot-engine
godot-twicil
Godot TwiCIL – Godot Twitch Chat Interaction Layer
Stars: ✭ 57 (-79.12%)
Mutual labels:  godot, godot-engine
viewport-spy
Godot editor UI to spy on what a Viewport is rendering. Useful for debugging.
Stars: ✭ 28 (-89.74%)
Mutual labels:  godot, godot-engine
pryin
PryIn is an Application Performance Monitoring platform for your Elixir/Phoenix application.
Stars: ✭ 25 (-90.84%)
Mutual labels:  elixir-phoenix, phoenix-framework
godot-skills
A generic, compositional skill system for Godot Engine that uses scenes to design abilities and their effects.
Stars: ✭ 25 (-90.84%)
Mutual labels:  godot, godot-engine
discord.gd
Discord Bot API wrapper for Godot. Make bots in GDScript.
Stars: ✭ 69 (-74.73%)
Mutual labels:  godot, godot-engine
PostgreSQLClient
PostgreSQL connector for Godot Engine in GDScript.
Stars: ✭ 28 (-89.74%)
Mutual labels:  godot, godot-engine
Godot-DialogGraphPlugin
A simple Godot plugin for dialog graph creation.
Stars: ✭ 58 (-78.75%)
Mutual labels:  godot, godot-engine
godot card tools
Framework for making card-games in Godot
Stars: ✭ 30 (-89.01%)
Mutual labels:  godot, godot-engine
DartGodot
Godot + Dart 🎯
Stars: ✭ 79 (-71.06%)
Mutual labels:  godot, godot-engine
godot-polygon2d-fracture
A simple script for fracturing polygons. Also adds nice helper functions for polygons like calculateArea, triangulate, getRandomPointsInPolygon, getBoundingRect)
Stars: ✭ 148 (-45.79%)
Mutual labels:  godot, godot-engine
godot-interpolated-camera3d
Provides an InterpolatedCamera3D node that replicates its 3.2.x functionality (and more)
Stars: ✭ 40 (-85.35%)
Mutual labels:  godot, godot-engine
BrainfuckIDE
A Brainfuck IDE/debugger designed to be intuitive, featureful and visually appealing
Stars: ✭ 77 (-71.79%)
Mutual labels:  godot, godot-engine
godot-unirest
Unirest in GDScript: Simplified, lightweight HTTP client library.
Stars: ✭ 32 (-88.28%)
Mutual labels:  godot, godot-engine
Fake-Interior-Shader-for-GodotEngine
Interior Mapping shader for the Godot Game Engine 3.x that works with both GLES3 and GLES2.
Stars: ✭ 40 (-85.35%)
Mutual labels:  godot, godot-engine
GodotDiscordSDK
A Discord Game SDK wrapper for Godot, written in C.
Stars: ✭ 40 (-85.35%)
Mutual labels:  godot, godot-engine
godot-gameshell
Godot export templates and instructions for the GameShell portable game console and other single-board computers
Stars: ✭ 34 (-87.55%)
Mutual labels:  godot, godot-engine
fmod-gdnative
FMOD Studio integration and bindings for the Godot game engine
Stars: ✭ 102 (-62.64%)
Mutual labels:  godot, godot-engine

Godello (aka GodoTrello) Godot 3.2

Trello inspired kanban board made with the Godot Engine and GDScript, powered by an online real-time collaborative backend made with Elixir and Phoenix Channels (with the possibility of additional backend languages and frameworks). ATTENTION: 70% done. Remaining WIP in the branch integrate_elixir. See "Progress" below.

Godello Drag and Drop + Reactive Example

Table of Contents

Introduction Video

Video

Motivation 💡

A Godot Engine proof of concept for:

  • Business applications
  • Advanced GUI
  • Complex data architecture and data modeling
  • Real-time online data flow
  • Connected multi-user collaborative interfaces and interactions

In the end, the idea is to showcase Godot as a viable option for native Desktop applications and tools, no matter how simple or complex/advanced the application and the interface are.

Features 🎛️

  • Trello-like interface, data organization and interactions:
    • Support for multiple Kanban Boards with Lists and Cards
    • Ordering and positioning of Lists and Cards by dragging and dropping
    • In place editing (example: clicking a card's title to edit it)
    • Support for hundreds of lists and cards in the same board, without loss of frame rate
    • Card description and TODO list
  • Repository data design pattern
  • Reactive React-like, pseudo two-way data binding and data propagation using Godot's signals.
  • Real-time online connectivity and multiple user collaboration using Godot's WebSockets.
    • The backend layer is implemented using an agnostic BackendAdapter, this way any backend language and framework can be used. The BackendAdapter even allows to remove the usage of WebSockets and use only HTTP or local calls.
    • The main backend implementation is made with Elixir + Phoenix Channels backed by a PostgreSQL database. Communication with Godot is done using the library GodotPhoenixChannels.
  • Multi-user presence detection
  • User account flow (sign-up and login)
  • Multi-resolution responsive and expansible interface
    • Interface elements are all implemented with Godot's Control nodes, inside Container nodes, there is no usage of Node2D's nodes.

Progress 🚧

What is finished

  • The GodotEngine frontend:
    • Trello-like interface and all its local interactions, including the dragging and dropping of Lists and Cards.
    • The main data architecture, with reactive, two way data bindings and the Repository design pattern.
    • Scene flow.
  • The Elixir + Phoenix Channels backend, backed by a PostgreSQL database (it's in the branch backend_elixir, still not merged into master).

Work in progress

  • The real-time connectivity and multi-user collaboration via the integration with the Elixir backend is currently a work in process in the branch integrate_elixir.
  • Since the frontend in the master branch is not integrated with the backend, no data is persisted (all data is lost as soon as the application is closed and the application is opened as a blank canvas).
  • Although the data architecture is finished in the frontend, the work in the integrate_elixir branch is constantly making changes to it, to better accomodate the needs of the backend integration.

Roadmap 🗺️

  • Finish the Elixir + Phoenix Channels integration.
  • Code refactoring following Godot's style guide.
  • Immutable reactivity, Redux-like.
    • This will allow for undos and redos, as well optimistic UI interactions.
  • Optimistic UI updates.
    • Currently it's inbetween optimistic and pessimistic.
  • A course titled "Creating Advanced Interfaces and connected Business Applications with Godot" where we build this project from scratch
    • Instead of a course, process videos could be an option
  • Additional Trello features:
    • Share boards publically without inviting individual members (via a code that can be typed into the Godot application)
    • Card file attachments
  • User account improvements:
    • Password recovery
    • Profile management (update user profile and credentials)
  • Additional backends and backend adapters:
    • Node.js (Express + socket.io)
    • Kotlin (Ktor)
    • PHP (Laravel)

Sponsors ❤️

Show appreciation and support for this project on Patreon. Patrons of any tier will have their name listed here. Patrons of the Sponsors tier or higher, can also have a link and a logo listed here.

Updates 📡

For news and more code and art experiments and prototypes:

License ⚖️

MIT License - Copyright (c) 2020 Alfred Reinold Baudisch

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].