Android app for Taiga agile system

Overview

TaigaMobile

Get it on Google Play

This is unofficial android app for taiga.io (agile project management system) built with Jetpack Compose (brand new UI toolkit from Google). Project is still under development, so new features will be added in future.

Features

  • View:
    • Projects
    • Epics
    • User stories
    • Tasks
    • Issues
    • Sprints
    • Working on / Watching (aka Dashboard)
  • Create, edit and delete:
    • Epics
    • User stories
    • Tasks
    • Issues
    • Sprints
  • Leave and delete comments
  • Kanban (for sprint and for user stories)
  • Filters for user stories, epics, issues

Some screens

How app looks (dark theme supported)




Stack

  • Kotlin
  • Jetpack Compose
  • Clean Architecture
  • MVVM
  • Coroutines
  • ... and other cool things

Design

Probably sucks. I'm not very good at designing UI, but I'm doing my best. So, if you have any suggestions, please tell me. I'll be really glad to receive any feedback.

Download

Check out app on Google Play or go to Releases page to download apk.

Issues

Please consider telling about problems or suggestions on Issues page

Links

Project on Taiga

Comments
  • Error during login

    Error during login

    Hi all

    first: thanks for the app and making it open source

    At the moment I cannot use it, because after entering my credentials I get the error

    error during login. Check credentials or connection

    I use lineage OS without play services and afwall.

    The provider of the taiga instance is board.disroot.org (I already checked if I made any typos)

    Thanks for help in advance

    opened by ghost 21
  • Feature Request: Save filter selection on scrum backlog screen

    Feature Request: Save filter selection on scrum backlog screen

    story: as a user of filters on the scrum backlog screen, i expect my selected filters to stay selected until i manually reset them

    reproduction steps

    1. select a filter on the scrum backlog screen
    2. switch over to board/epics/issues etc.
    3. switch back to the scrum backlog screen

    expected behavior

    the selected filters from before are still selected

    observed behavior

    no filters are selected

    enhancement 
    opened by briaguya-ai 4
  • #feature request: kanban to the front - change order - start page

    #feature request: kanban to the front - change order - start page

    Since my last problem was fixed so quickly I thought I'd ask for a feature request: I wanted to know if it's possible to add a possibility to change the order of the different boards (scrum, Epic, kanban etc) and/or to set a default page where the app always opens (for example kanban).

    Thank you so much for your effort, I'm super happy there even is an app Regards from Germany

    Edited as asked for

    enhancement archived 
    opened by deraljoscha 3
  • app login not possible with subpath

    app login not possible with subpath

    Hey dear developer. I love the app and recently tested it and then set taiga up for my small workplace. We installed Taiga under a subpath and everything works fine in the web version. But unfortunately now the login through the app that previously worked perfectly fine under a subdomain doesn't work anymore. So before it worked under taiga.mydomain.com and now doesn't work anymore under mydomain.com/taiga The "taiga server url" field on the start screen of the app just comes up with an error (red frame)

    So is there something I can do or is it something to fix easily?

    Thanks so much in advance, I really appreciate the effort Screenshot_20220517-124648_WhatsApp

    enhancement 
    opened by deraljoscha 3
  • Save selected filters

    Save selected filters

    Implements saving filters mechanism which was discussed in #46:

    1. Save selected filters in SharedPreferences (thus selected filters can be restored even after app restart)
    2. Update selected filters data when screen is opened again and new filters information is loaded (to keep up with the actual state)
    opened by EugeneTheDev 3
  • Private Projects Inaccessible

    Private Projects Inaccessible

    Hi, firstly I'd just like to thank you for making something like this. The lack of a mobile application is the reason I don't really use Taiga, even though I love the design and functionality. It's really weird that they didn't offer an official FOSS mobile app. And creepy that the nearly-official app is secret-source. :/

    Anyways, I fired this up and tried it, but I didn't get far: my only project on Taiga is a private one, and TaigaMobile only directs me to a list of public projects to pick from. So I couldn't go any further than that. :)

    I'm not sure what it would take to add private project support, but the ideal pattern for usage for me would be to be presented with projects I'm already part of, before asking me if I want to join/view other public projects.

    I'll keep the app for now and try out any updates that emerge, I'm excited to see where it goes. Thanks again!

    opened by cathalgarvey 3
  • Login via Google

    Login via Google

    Is it possible to login into the client if my account is authorized via google credentials? If not, is this functionality planned at any time in the future?

    wontfix 
    opened by wmsmigiel 2
  • Translation in other languages

    Translation in other languages

    It would be nice for some non English speakers to use the app too. Could you add a language setting to allow user to switch (or directly use system langage if available).

    Here is translation of string.xml for french :

    <resources>
        <string name="app_name">Taiga Mobile</string>
        <string name="app_name_with_version_template" translatable="false">%s - %s</string>
    
        <string name="yes">Oui</string>
        <string name="no">Non</string>
    
        <string name="common_error_message">Un problème est survenu. Vérifiez votre connexion.</string>
        <string name="permission_error">Erreur, vous n'avez pas les autorisations suffisantes</string>
    
        <string name="nothing_to_see">Rien à voir ici</string>
    
        <string name="login_taiga_server">Serveur Taiga</string>
        <string name="login_username">Login</string>
        <string name="login_password">Mot de passe</string>
        <string name="login_continue">Continuer</string>
        <string name="login_error_message">Erreur lors de la connexion. Vérifiez vos identifiants et votre connexion</string>
    
        <string name="dashboard">Tableau de bord</string>
        <string name="dashboard_short">Board</string>
        <string name="scrum">Scrum</string>
        <string name="epics">Epopées</string>
        <string name="issues">Tickets</string>
        <string name="team">Equipe</string>
        <string name="settings">Paramètres</string>
        <string name="more">Plus</string>
        <string name="kanban">Kanban</string>
    
        <string name="choose_project_title">Selectionner un projet</string>
    
        <string name="search_projects_hint">Rechercher les projets</string>
        <string name="project_name_template" translatable="false">%s (%s)</string>
        <string name="project_member">Membres</string>
        <string name="project_admin">Admin</string>
        <string name="project_owner">Propriétaire</string>
    
        <string name="working_on">Travaille sur</string>
        <string name="watching">Observe</string>
    
        <string name="title_with_ref_pattern" translatable="false">#%d %s</string>
        <string name="unassigned">Non assigné</string>
        <string name="assignee_pattern">Assigné à: %s</string>
        <string name="backlog">Reste à faire</string>
    
        <string name="sprints_title">Sprints</string>
        <string name="sprint_dates_template" translatable="false">%s - %s</string>
        <string name="stories_count_template">Récits: %d</string>
        <string name="taskboard">Board</string>
        <string name="closed">Fermé</string>
        <string name="closed_sprint_name_template">%s (fermé)</string>
        <string name="add_userstory">Ajouter un récit utilisateur</string>
    
        <string name="user_story">Récit utilisateur</string>
        <string name="tasks_without_story">Tâche orpheline</string>
        <string name="sprint_issues">Tickets</string>
        <string name="add_task">Ajouter une tâche</string>
        <string name="add_issue">Ajouter un ticket</string>
    
        <string name="userstory_slug">Récit #%d</string>
        <string name="task_slug">Tâche #%d</string>
        <string name="epic_slug">Epopée #%d</string>
        <string name="issue_slug">Ticket #%d</string>
    
        <string name="epic">Epopée</string>
        <string name="userstory">User story</string>
        <string name="task">Tâche</string>
        <string name="issue">Ticket</string>
        
        <string name="no_sprint">Aucun sprint</string>
        <string name="belongs_to_epics">Fait partie de l'épopée</string>
        <string name="belongs_to_story">Fait partie du récit</string>
        <string name="link_to_epic">Lien ver l'épopée</string>
        <string name="created_by">Créé par</string>
        <string name="assigned_to">Assigné à</string>
        <string name="watchers">Observateurs</string>
        <string name="userstories">Récits utilisateur</string>
        <string name="tasks">Tâches</string>
        <string name="comments_template">Commentaires (%d)</string>
        <string name="comment_hint">Commenter</string>
        <string name="delete_comment_title">Supprimer le commentaire</string>
        <string name="delete_comment_text">Etes vous sûr de vouloir supprimer le commentaire ?</string>
        <string name="add_user">Ajouter un utilisateur</string>
    
        <string name="choose_status">Choisir un statut</string>
        <string name="choose_type">Choisir un type</string>
        <string name="choose_severity">Choisir la gravité</string>
        <string name="choose_priority">Choisir la priorité</string>
        <string name="choose_sprint">Choisir le sprint</string>
        <string name="move_to_backlog">Déplacer au backlog</string>
        <string name="search_members">Rechercher des membres</string>
        <string name="search_epics">Rechercher des épopées</string>
    
        <string name="power">power</string>
    
        <string name="unlink_epic_title">Détacher de l'épopée</string>
        <string name="unlink_epic_text">Etes vous sûr de vouloir détacher de l'épopée ?</string>
    
        <string name="remove_user_title">Retirer l'utilisateur</string>
        <string name="remove_user_text">Etes vous sûr de vouloir retirer l'utilisateur ?</string>
    
        <string name="delete_task_title">Supprimer la tâche</string>
        <string name="delete_task_text">Etes vous sûr de vouloir supprimer la tâche ?</string>
    
        <string name="promote_title">Promouvoir en récit utilisateur</string>
        <string name="promote_text">Etes vous sûr de vouloir promouvoir cette tâche en récit utilisateur ?</string>
    
        <string name="title_hint">Titre</string>
        <string name="description_hint">Description</string>
    
        <string name="edit">Editer</string>
        <string name="delete">Supprimer</string>
        <string name="promote_to_user_story">Promouvoir en récit utilisateur</string>
    
        <string name="create_task">Nouvelle tâchesk</string>
        <string name="create_userstory">Nouveau récit utilisateur</string>
        <string name="create_epic">Nouvelle épopée</string>
        <string name="create_issue">Nouveau ticket</string>
    
        <string name="loading">Chargement …</string>
    
        <string name="tasks_search_hint">Rechercher par ref ou sujet</string>
    
        <string name="status_with_number_template" translatable="false">%s - %d</string>
    
        <!-- settings -->
        <string name="username_template" translatable="false">\@%s</string>
        <string name="logout_title">Se déconnecter</string>
        <string name="logout_text">Etes vous sûr de vouloir vous déconnecter ?</string>
    
        <string name="appearance">Apparence</string>
    
        <string name="theme_title">Thème</string>
        <string name="theme_system">Système</string>
        <string name="theme_light">Light</string>
        <string name="theme_dark">Dark</string>
    
        <string name="help">Aide</string>
        <string name="submit_report">Soumettre un rapport</string>
    
        <string name="credits_message">Réalisé avec ❤️ par EugeneTheDev. Si vous aimez l'application, merci de donner une appréciation sur Google Play et sur le projet GitHub</string>
    
        <string name="github_url" translatable="false">https://github.com/EugeneTheDev/TaigaMobile</string>
        <string name="source_code">Code source</string>
    </resources>
    opened by gmerb 2
  • feature request: drag and drop

    feature request: drag and drop

    I'd be super happy if there would be a possibility implement a drag and drop function, especially on kanban it would be perfect to push user stories from one column to the next

    I have to thank yet again

    enhancement archived 
    opened by deraljoscha 1
  • Offline functionality

    Offline functionality

    Hi! Taiga looks really useful, and this app could make it even more useful. In my organization, we are sometimes offline for a week at a time. Therefore, we prefer apps that are functional offline, and can sync gracefully when they connect to the internet. I suspect that this would be a lot of work, given that Taiga seems to be designed so that everything happens on the server. Do you think there's any chance of offline functionality in this app?

    enhancement wontfix 
    opened by patogit 1
  • Wiki implementation

    Wiki implementation

    We use Taiga as a way to plan our project. We also document planned changes and long-form conversations in wiki pages. Are there any plans to implement the Taiga wiki in Taiga Mobile? Thanks for the great app, by the way - very helpful for us!

    enhancement 
    opened by onkoe 1
Releases(v1.9)
Owner
Eugene
I do staff
Eugene
A lightweight particle system for Jetpack Compose - Quarks

compose-particle-system Quarks is a lightweight particle system for Jetpack Compose. There are endless possibilities for creating generative art with

Nikhil Chaudhari 41 Dec 28, 2022
A sample of how to implement a design system in Jetpack Compose

[WIP] Sample Design System This project aims to hold an example of how to implement a design system with Jetpack Compose. At this moment it only has t

Fábio Carballo 4 Dec 2, 2021
Customisable Preview of system UI decoration for Jetpack Compose.

AdvancedPreview Customisable Preview of system UI decoration for Jetpack Compose. Use cases Want the Preview in Android Studio to look more like in re

Mobnetic 28 Dec 5, 2022
Fake Toss Design System with Jetpack Compose

FTDS Fake Toss Design System Let's clone TDS with Jetpack Compose! TDS의 모든 면을 따라

Fake Toss 1 Apr 18, 2022
Andromeda is a open-source design language system implemented in Jetpack Compose.

Andromeda Andromeda is a open-source design language system implemented in Jetpack Compose. Catalog app Table of Contents About the Project Getting St

Adit Lal 140 Dec 25, 2022
Decathlon Design System UI components for Compose applications

Vitamin Compose Decathlon Design System libraries for android applications Website Compose Decathlon Design System is based on Material Design compose

Decathlon 168 Dec 22, 2022
ToDo-Task-App - An Android App built to demonstrate the use of Jetpack Compose, Material You, Room Database, and MVVM

ToDo Task App ToDo Task App is a sample Android app built with Jetpack Compose.

null 0 Jan 17, 2022
New style for app design Online Flora Go Go App UI made in Jetpack Compose. 😉 😎

JetComposeLoginUI New style for app design Online Flora Go Go App UI made in Jetpack Compose. ?? ?? (Navigation Components, Dagger-Hilt, Material Comp

Arvind Meshram 95 Dec 22, 2022
New style for app design E-commerce Shop App UI made in Jetpack Compose.😉😎

E-commerceShopAppUI-Android New style for app design E-commerce Shop App UI made in Jetpack Compose. ?? ?? (Navigation Components, Dagger-Hilt, Materi

Arvind Meshram 30 Jan 8, 2023
New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose.😉😎

JetMaxMovie New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose. ?? ?? (Navigation Compose,Dagger-Hilt, Mater

Arvind Meshram 6 Jul 6, 2022
Bicicas-app - Unnoficial Bicicas App Built With Kotlin

Unnoficial Bicicas App This project is the continuation of Unnoficial Bicicas ap

Vicent Bellés 1 Nov 27, 2022
This is a sample app(For beginners - App #1) built using Jetpack Compose

This is a sample app(For beginners - App #1) built using Jetpack Compose. It is a simple - single screen app to demonstrate use of basic Jetpack Compose UI elements like Text, Image and Button & LazyColumn (Vertical Recyclerview). It also demonstrates how compose manages state with a Boolean State.

BHAVNA THACKER 3 Apr 3, 2022
This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Compose.

JetBMICalculator This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Co

BHAVNA THACKER 3 Dec 31, 2022
Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

MindOrks 382 Jan 5, 2023
JetFlix - A clone of Android NetFlix app in Android built using Jetpack compose.

JetFlix A clone of Android NetFlix app in Android built using Jetpack compose. This sample app showcases the following: MVVM Architecture (ViewModel +

Pushpal Roy 40 Dec 6, 2022
Sunflower - A gardening app illustrating Android development best practices with Android Jetpack

Sunflower - A gardening app illustrating Android development best practices with Android Jetpack

Vinicius Amaral 1 Apr 17, 2022
A simple path finding visualizer mobile app to demonstrate the use of Jetpack Compose UI toolkit in Android.

Path Finding Visualizer App using Jetpack Compose A simple path finding visualizer mobile app to demonstrate the use of Jetpack Compose UI toolkit in

Serge Nino Martin Villasica 33 May 6, 2022
Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)

AndroidMVIExample Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle e

Patryk Kosieradzki 55 Nov 18, 2022
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.

ThinkRchive An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android. WORK IN PROGRESS GOALS: Use Ret

Racka98 81 Dec 16, 2022