Memo is an open-source, programming-oriented spaced repetition software (SRS) written in Flutter.

Overview

English | Portuguese

Memo

Memo Icon

Release

Monorepo for Memo.

Memo is an open-source, programming-oriented spaced repetition software (SRS) written in Flutter.

As of now, this project is designed to only output builds for Android and iOS. Even though, given the current stability of Flutter SDK for desktop (Windows, Linux and macOS) and web, there is a high probability that this project will eventually support builds for all platforms.


This README is meant to guide how this project is structured and should serve as a guide to help the project scale with the current and future requirements. Think of it as a flexible set of rules that guides the project's decisions. While they can (and probably will) change over time, discussions must be raised to trigger such changes: this means that we will think/question ourselves before taking an action that breaks any rational decision taken here. It is also effective to guide PR discussions.

Setup

If you have no idea how to install Flutter and run it locally, check this Get started.

If you have Flutter setup locally, on the project's root folder, install pubspec dependencies by running flutter pub get.

Firebase dependencies

Memo has Firebase dependencies that needs to be setup before running locally. More information on this in ARCHITECTURE#firebase.

Architecture

How this application works from inside and how it interacts with external dependencies - written in details in ARCHITECTURE.md.

Background

If you're interested in checking out an overview about how we dealt with this project's software process (inside our team), check out .process/ (sorry, for now only in ptBR).

Contributing & Good Practices

See CONTRIBUTING for details about how to contribute to the project.

License

Memo is published under BSD 3-Clause.

Sponsors

This project was built with the help of the sponsors below:

Comments
  • Add github actions workflow

    Add github actions workflow

    Setup of CI with github actions

    Proposed steps:

    • Installation of flutter and flutter dependences
    • Execution of flutter formatter, analyser and linter
    • Execution of tests

    Trigger: on pull requests

    For the future will be interesting add the CD setup with fastlane as the mentioned by @matuella on issue #16. Some details would be important set here too, like flutter version or when the process will be trigged.

    This setup was inspired on this gist

    This changes have been discussed on issue #16

    Pre-launch Checklist

    • [x] Eu li o CONTRIBUTING.md e segui as sugestões descritas ali sobre boas práticas de código / I read CONTRIBUTING.md and followed the suggestions proposed there about writing good code;
    • [x] Eu listei pelo menos um issue relacionado à este PR / I listed at least one issue related to this PR;
    • [ ] Eu adicionei novos testes para cobrir as mudanças que eu fiz neste PR, ou este PR é uma exceção / I added new tests that cover the changes made in this PR or this PR is a test-exception;
    • [ ] Eu atualizei o CHANGELOG.md com as mudanças feitas neste PR / I updated CHANGELOG.md with the changes made in this PR;
    • [ ] Eu atualizei/adicionei comentários relevantes nas modificações efetuadas / I updated or added relevant docs in the modifications I've made;
    • [x] Todos os testes previamente existentes e os novos criados por mim estão finalizando com sucesso / All the existing tests - the old and the new ones - are finishing with success.
    toolkit 
    opened by RaphaelOliveiraMoura 13
  • [PROPOSAL] Firebase Folders Refactoring

    [PROPOSAL] Firebase Folders Refactoring

    Propose a minor refactoring in the folders structure:

    • Removes package.json from src/core, moving all dependencies to an unique package.json in the project root.
    • Moves functions/ folder to root, including only index.ts as it sub-file.
    • Moves dist/ output to root => <ROOT>/dist/
    enhancement target: firebase 
    opened by ggirotto 7
  • Add CodeCov to Github Actions Workflow #26

    Add CodeCov to Github Actions Workflow #26

    • Adds CodeCov to Github Actions Workflow and add Codecov badge into Readme. For the Badge link to work, you need to activate the repository on Codecov. I activated the repository in my Codecov account and it is working perfectly, as you can see in the main branch of my repository

    • Adds CodeCov to Github Actions Workflow #26

    Pre-launch Checklist

    • [x] Eu li o CONTRIBUTING.md e segui as sugestões descritas ali sobre boas práticas de código / I read CONTRIBUTING.md and followed the suggestions proposed there about writing good code;
    • [x] Eu listei pelo menos um issue relacionado à este PR / I listed at least one issue related to this PR;
    • [x] Eu adicionei novos testes para cobrir as mudanças que eu fiz neste PR, ou este PR é uma exceção / I added new tests that cover the changes made in this PR or this PR is a test-exception;
    • [ ] Eu atualizei o CHANGELOG.md com as mudanças feitas neste PR / I updated CHANGELOG.md with the changes made in this PR;
    • [x] Eu atualizei/adicionei comentários relevantes nas modificações efetuadas / I updated or added relevant docs in the modifications I've made;
    • [x] Todos os testes previamente existentes e os novos criados por mim estão finalizando com sucesso / All the existing tests - the old and the new ones - are finishing with success.
    toolkit 
    opened by murilosandiego 7
  • Questões mais claras e objetivas

    Questões mais claras e objetivas

    Achei um comentário no Google Play bem interessante, que é a questão das perguntas.

    As perguntas serem mais objetivas ou ter algum texto padrão como "O quer é essa frase abaixo:" ou "O quer quer dizer ... ...." ficaria mais didático e melhor.

    Pra mim mesmo apareceu apenas "GIT" ou um código do SHA1 e eu não entendi muito bem o que queria dizer. Saberia se fosse melhor formulado a pergunta.

    enhancement 
    opened by Victor-BwD 6
  • Updates Android & iOS release lanes to distribute beta build to external users

    Updates Android & iOS release lanes to distribute beta build to external users

    Introduces a performance improvement to release workflow that may save around 5 minutes, according to the last release workflow logs:

    CleanShot 2021-07-16 at 11 10 12@2x

    It basically ignores the processing time from AppStoreConnect. It doesn't make sense to wait for it since we'll need to manually release it latter in the portal.

    enhancement toolkit 
    opened by ggirotto 5
  • Improve speed in workflow build-related operations

    Improve speed in workflow build-related operations

    Not sure if this is a limitation of the images that we are using or what, but both release and PR workflows are slow. ​

    What could we do to improve these build times (possibly caching?

    enhancement 
    opened by matuella 5
  • Adds Fastlane + Github Actions to auto-deploy new releases (#62 clone)

    Adds Fastlane + Github Actions to auto-deploy new releases (#62 clone)

    https://github.com/olmps/memo/pull/62 was merged in the wrong branch collection-execution. This PR addresses the same changes already discussed and reviewed at https://github.com/olmps/memo/pull/62 but now pointing correctly to main, since collection-execution was already merged

    toolkit 
    opened by ggirotto 5
  • Add test for listenAll method

    Add test for listenAll method

    • Add test for listenAll method #30

    Pre-launch Checklist

    • [x] Eu li o CONTRIBUTING.md e segui as sugestões descritas ali sobre boas práticas de código / I read CONTRIBUTING.md and followed the suggestions proposed there about writing good code;
    • [x] Eu listei pelo menos um issue relacionado à este PR / I listed at least one issue related to this PR;
    • [x] Eu adicionei novos testes para cobrir as mudanças que eu fiz neste PR, ou este PR é uma exceção / I added new tests that cover the changes made in this PR or this PR is a test-exception;
    • [ ] Eu atualizei o CHANGELOG.md com as mudanças feitas neste PR / I updated CHANGELOG.md with the changes made in this PR;
    • [x] Eu atualizei/adicionei comentários relevantes nas modificações efetuadas / I updated or added relevant docs in the modifications I've made;
    • [x] Todos os testes previamente existentes e os novos criados por mim estão finalizando com sucesso / All the existing tests - the old and the new ones - are finishing with success.
    enhancement 
    opened by murilosandiego 5
  • Emojis showing up in the question screen

    Emojis showing up in the question screen

    Descreva o Bug/Describe the bug:

    It seems like sometimes the emojis would show up in the question screen, when it should only apear in the answer screen.

    Passos para Reproduzir/Steps to Reproduce:

    1. Open the app.
    2. Go to some deck
    3. Tap "Estudar Agora"
    4. Tap "Ver Resposta"

    It doesn't happen always. In fact, it only happend once to me.

    Resultado Esperado/Expected Result:

    I should see the answer to the question and the emojis.

    Resultado Obtido/Actual Result:

    I see another question and the emojis.

    Screenshots:

    image

    Versão do app/App Version:

    0.1.0

    bug P3 target: flutter 
    opened by mpirescarvalho 4
  • Update README.md

    Update README.md

    Faça aqui uma breve descrição das alterações que esse PR faz e o porquê / Describe the changes proposed in this PR and their motivation:

    The index of sections on README.md is "Setup: how the configure your local project;" but should be "Setup: how to configure your local project;".

    Liste pelo menos um issue relacionado à este PR. / List at least one open issue related to this PR:

    Pre-launch Checklist

    • [x] Eu li o CONTRIBUTING.md e segui as sugestões descritas ali sobre boas práticas de código / I read CONTRIBUTING.md and followed the suggestions proposed there about writing good code;
    • [ ] Eu listei pelo menos um issue relacionado à este PR / I listed at least one issue related to this PR;
    • [ ] Eu adicionei novos testes para cobrir as mudanças que eu fiz neste PR, ou este PR é uma exceção / I added new tests that cover the changes made in this PR or this PR is a test-exception;
    • [ ] Eu atualizei o CHANGELOG.md com as mudanças feitas neste PR / I updated CHANGELOG.md with the changes made in this PR;
    • [ ] Eu atualizei/adicionei comentários relevantes nas modificações efetuadas / I updated or added relevant docs in the modifications I've made;
    • [ ] Todos os testes previamente existentes e os novos criados por mim estão finalizando com sucesso / All the existing tests - the old and the new ones - are finishing with success.
    documentation 
    opened by danieldecasttro 4
  • Fix #286 - typo on cards of

    Fix #286 - typo on cards of "BDD - Fundamentos" Collection.

    There are a few occurrences of "orientado a comportamente" (with letter E) rather than "orientado a comportamento" (with letter O).

    I replaced the letter "E" with the letter "O" where it was necessary.

    Fix #286

    opened by revagomes 3
  • Dificuldade para rodar o projeto

    Dificuldade para rodar o projeto

    Descreva o Bug/Describe the bug:

    Ao rodar o projeto do main, sempre da um erro de não encontrar uma dependência ou ela estar desatualizada

    Passos para Reproduzir/Steps to Reproduce: Versões: Flutter: 2.10.3

    1. Clonar o projeto
    2. Pelo terminal executar o flutter run

    Resultado Esperado/Expected Result: Esperava que o projeto rodasse dentro do meu emulador

    Resultado Obtido/Actual Result:

    Erros de SDK e de versão antiga do fluther quill.

    Screenshots:

    image

    Versão do app/App Version:

    Branch main

    needs triage 
    opened by edmargomes 6
  • Portuguese corrections

    Portuguese corrections

    Conforme a issue https://github.com/olmps/memo/issues/294 criada por mim, realizei as seguintes alterações:

    • Alterei traços por travessões, deve-se usar traços apenas quando a intensão é juntar palavras, por exemplo, "deve-se".
    • Realizei correções de ortográfica
    • Removi sequência de gerúndios, pois, deve-se evitar, quando possível.
    • Removi expressões prolixas.
    • Removi todos os pronomes "você", pois, pode soar como desrespeito e acaba criando uma "barreira" entre leitor e locutor.

    Pre-launch Checklist

    • [x] Eu li o CONTRIBUTING.md e segui as sugestões descritas ali sobre boas práticas de código / I read CONTRIBUTING.md and followed the suggestions proposed there about writing good code;
    • [x] Eu listei pelo menos um issue relacionado à este PR / I listed at least one issue related to this PR;
    • [ ] Eu adicionei novos testes para cobrir as mudanças que eu fiz neste PR, ou este PR é uma exceção / I added new tests that cover the changes made in this PR or this PR is a test-exception;
    • [x] Eu atualizei o CHANGELOG.md com as mudanças feitas neste PR / I updated CHANGELOG.md with the changes made in this PR;
    • [ ] Eu atualizei/adicionei comentários relevantes nas modificações efetuadas / I updated or added relevant docs in the modifications I've made;
    • [ ] Todos os testes previamente existentes e os novos criados por mim estão finalizando com sucesso / All the existing tests - the old and the new ones - are finishing with success.
    opened by raulpacheco2k 0
  • Correções ortográficas e boas práticas da língua portuguesa

    Correções ortográficas e boas práticas da língua portuguesa

    No readme_ptbr.md realizar as seguintes alterações.

    • [x] Alterar traços por travessões, deve-se usar traços apenas quando a intensão é juntar palavras, por exemplo, "deve-se".
    • [x] Realizar correções de ortográfica
    • [x] Remover sequência de gerúndios, pois, deve-se evitar, quando possível.
    • [x] Remover expressões prolixas.
    • [x] Remover todos os pronomes "você", pois, pode soar como desrespeito e acaba criando uma "barreira" entre leitor e locutor.
    needs triage 
    opened by raulpacheco2k 1
Releases(0.2.0)
  • 0.2.0(Aug 13, 2021)

    Memo 0.2.0 release!

    It also contains all changes made in previous release candidates:

    Updated

    • Several ExecutionTerminal enhancements:
      • Allows the user to go back/forward on the same memo.
      • The selected difficulty don't require a confirmation anymore - once it's selected, it animates to the next memo.

    Fixed

    • Several ExecutionTerminal fixes:
      • Actions overlapping in smaller devices.
      • Inconsistent state when memos were executed too fast.
      • Not following the expected layout specs.
    • Replaced oval gradient in CollectionCard with LinearGradient, attempting to solve performance issues.

    Removed

    • Hero animation from CollectionCard.
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0-rc.1(Aug 3, 2021)

    Added

    • Firebase Analytics SDK with no need for consent - disabled AdId collection.
    • A proper empty state for CollectionsPage - the _CollectionsEmptyState.
    • DestructiveButton, a customized button for destructive operations - with custom layout specs.
    • MemoThemeData.destructiveSwatch and a its respective destructive swatch for the classic theme.

    Updated

    • Android & iOS Fastfiles to automatically distribute uploaded builds to external testers.
    • Both pull-request and release workflows now:
      • Caches flutter's SDK.
      • Run Flutter tests only once.
      • Strategy used to authenticate with GoogleService-Info (only required in release, using an empty template in pull-request).
      • Uses the Flutter's beta channel + latest version, requirements of the animation jank fix.
    • Android minSdkVersion from 16 to 17 and multiDexEnabled to true, requirements of flutter-quill dependency.
    • iOS MinimumOSVersion from 8.0 to 9.0, an apparent dependency on the latest beta channel version.
    • Flutter's SDK to 2.4.0-4.2.pre to fix the animation jank.
    • Fastfile to use --bundle-sksl-path option, requirements of the animation jank fix.
    • When quitting the execution, CollectionExecutionPage now uses the showSnappableDraggableModalBottomSheet instead of AlertDialog.

    Collections

    • Cohesion improvements on comecando_com_git.

    Fixed

    • Discord link was expired, now it's a permalink.
    • White screen before SplashPage was loaded (using flutter_native_splash and generating native splash screens).
    • AssetIconButton wasn't conforming to the correct layout specs.
    • Misleading QuillEditor cursor in readOnly mode.
    • Wrong iOS localization. en removed while we don't localize the app, only supports pt-BR for now.
    • [Possible Fix] Trying to use a pre-bundled shader strategy to fix all animation's jank.
    • ExecutionTerminal not respecting the device's safe area.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Jul 16, 2021)

    Added

    • bdd_fundamentos_01, fundamentos_scrum, guia_scrum, kotlin_fundamentos_01 and manifesto_agil collections. Thanks to all contributors!
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0-rc.3(Jul 15, 2021)

    Added

    • Contributor model and its ContributorSerializer serializer.
    • EnvMetadata and its respective implementation that provides application's environment constants.
    • SettingsSection.community with LinkSettingsItem to discord.
    • showSnappableDraggableModalBottomSheet utility.
    • MultiContributorsView and SingleContributorView widgets.
    • Firebase and FirebaseCrashlytics to record unexpected crashes, errors and exceptions.

    Updated

    • All files documentations, including standardizing communication.
    • CollectionMemos and Collection now have a contributors property, exposing all associated contributors with that particular collection.
    • LoadedCollectionDetailsState now also provides a list of ContributorInfo associated with that Collection.
    • LinkButton widget now exposes backgroundColor and textStyle properties.
    • ExternalLinkButton widget now exposes iconColor, backgroundColor and textStyle properties.
    • scaffold_messenger to receive a BuildContext instead of extending it - improves code auto-completion.
    • Fastfile to upload iOS symbols to Crashlytics.
    • Existing collections with their respective contributors.

    Fixed

    • Missing SafeArea in Scaffold.bottomNavigationBar for devices with home indicator.
    • Missing SettingsVM interface.
    • Hero animations built through buildHeroCollectionCardFromItem weren't using an unique Hero.tag.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0-rc.2(May 12, 2021)

    Added

    • comecando_com_git, ecossistema_do_flutter and swift_fundamentos_01 collections.

    Removed

    • git_getting_started collection.

    Updated

    • Added new resources to resources.json.

    Fixed

    • Fixed release workflow to use personal access token when pushing changes to the repo.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0-rc.1(May 8, 2021)

    Introduces the first release candidate with all the first idealized functionalities for memo:

    • Collections listing, which sections all collections using its category and segments the contents by explore and review:
      • Explore shows all collections that haven't all memos completed at least once;
      • Review shows all collections that have all memos completed at least once.
    • Progress, showing the user's metadata for application-wide collection's executions, such as time spent, the percentage for each answer, etcetera;
    • Collection details and execution, which allows the user to study upon a compiled collection in this repository;
    • Settings page with info related to this project.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0-dev.1(Apr 2, 2021)

Owner
Olympus
Olympus
Naj - An open-source code generation and file management system written in Dart

Naj An open-source code generation and file management system written in Dart Ov

Najibullah Khoda Rahim 1 Feb 14, 2022
OOTP (Open One-time Password) is a supports multiple programming languages.

OOTP (Open One-time Password) is a supports multiple programming languages. The generated one-time passwords are fully compliant with HOTP (HMAC-based One-time Password) and TOTP (Time-based One-time Password).

Odroe 16 Nov 20, 2022
Software of Application using Dart, Flutter, Kotlin,Swift,Objective-C, and NodeJS

TouchMe-MobileApp-Dart-And-Flutter Description Software of Application using Dart, Flutter and Kotlin. Installation Using Dart 2.13.1, Flutter 2.2.1,

Daniel Arturo Alejo Alvarez 7 Nov 9, 2021
a software to connect you and your friends and others, are you guys also just tensed over the overuse of social media so we have a solution, appx (name not decided yet)

appx a software to connect you and your friends and others, are you guys also just tensed over the overuse of social media so we have a solution, appx

null 8 Jun 9, 2022
a software to connect you and your friends and others, are you guys also just tensed over the overuse of social media so we have a solution, sociio

APPX A software that will allow you to connect with your friends and family ! Are you guys also tensed over the over-use of social media ?? We have a

null 8 Jun 9, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Dec 1, 2022
Timy - open source mobile app for groups to communicate and organize themselves. Built with flutter.

Timy app An amazing open-source group messaging app build with flutter. ✨ Main Features Multiple groups (similar to Teams in Slack). Multiple open or

null 1.9k Nov 26, 2022
A fully open source visual to-do list Flutter application.

A fully open source visual to-do list Flutter application.

Abigail Mabe 1 Oct 24, 2021
An open source encrypted peer-to-peer system. Own data, own privacy. (Rust+Flutter)

An open source encrypted peer-to-peer system. Own data, own privacy. (Rust+Flutter)

Cymple Tech 124 Oct 7, 2021
An open source shazam alternative built using Flutter

bazinga An open source shazam alternative Getting Started This project is a starting point for a Flutter application. A few resources to get you start

Daniel Dennis 3 Aug 27, 2022
Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.

Routinger This is a simple app that will allow you to schedule your tasks, create a simple to-do, and also make recurring tasks. The app ends you noti

Routinger 15 Oct 17, 2022
Y2D : A open-source YouTube Downloader App built in Flutter

Y2D : A open-source YouTube Downloader App built in Flutter [TOC] Download Download Link : ARM 32-bit ARM 64-bit x86 64-bit Features Download YouTube

Romjan D. Hossain 51 Oct 21, 2022
GJAMAssist is an open source Flutter-based template for a business assistant application.

GJAMAssist is an open source Flutter-based template for a business assistant application. It has been designed to use Google Firebase as ba

Japan Gor 12 Oct 9, 2022
An open source task manager (todo list) app, developed using Dart language and Flutter framework.

Tasker An open source task manager (todo list) app, developed using Dart language and Flutter framework. Screenrecords     Screenshots                

Erfan Rahmati 36 Nov 22, 2022
A flutter repository meant for open-source contributions in hacktoberfest 2021.

Hacktoberfest 2021 Hosted by DigitalOcean for the 8th year in a row, Hacktoberfest encourages participation in giving back to the open source communit

MLSA-AMU 14 Jan 23, 2022
Finance manager for devlance using flutter and firebase (Open source)

finance_manager A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

ANIKET SINDHU 2 Dec 27, 2021
Note app is open-source notes app for Android & ios. It is built with Dart on top of Google's Flutter Framework.

Note App ✍?? Note App & SqfLite &GetX [MVC pattern] ????‍?? Note app is open-source notes app for Android & ios. It is built with Dart on top of Googl

null 24 Oct 8, 2022
Spacex-Go Flutter App - Simple yet powerful, open-source SpaceX launch tracker

SpaceX GO- Rwema App! Simple yet powerful, open-source SpaceX launch tracker About the project The purpose of this project is

Rwema 31 Oct 5, 2022