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

Last update: May 19, 2022

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:

GitHub

https://github.com/olmps/memo
Comments
  • 1. 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.
    Reviewed by RaphaelOliveiraMoura at 2021-03-31 17:46
  • 2. [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/
    Reviewed by ggirotto at 2021-12-02 21:30
  • 3. 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.
    Reviewed by murilosandiego at 2021-04-06 14:05
  • 4. 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.

    Reviewed by Victor-BwD at 2021-07-19 18:21
  • 5. 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.

    Reviewed by ggirotto at 2021-07-16 14:16
  • 6. 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?

    Reviewed by matuella at 2021-05-12 21:43
  • 7. 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

    Reviewed by ggirotto at 2021-05-04 20:38
  • 8. 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.
    Reviewed by murilosandiego at 2021-04-07 16:33
  • 9. 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

    Reviewed by mpirescarvalho at 2021-07-24 11:53
  • 10. 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.
    Reviewed by danieldecasttro at 2021-07-18 16:22
  • 11. 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

    Reviewed by revagomes at 2021-12-18 00:28
  • 12. 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

    Reviewed by edmargomes at 2022-03-19 18:24
  • 13. 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.
    Reviewed by raulpacheco2k at 2022-03-08 16:28
  • 14. 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.
    Reviewed by raulpacheco2k at 2022-03-08 16:23

Related

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

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).

Jan 5, 2022
Software of Application using Dart, Flutter, Kotlin,Swift,Objective-C, and NodeJS
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,

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

Apr 11, 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

Apr 11, 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 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

May 18, 2022
Timy - open source mobile app for groups to communicate and organize themselves. Built with flutter.
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

May 20, 2022
A fully open source visual to-do list Flutter application.
A fully open source visual to-do list Flutter application.

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

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)

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

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

Dec 31, 2021
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 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

Mar 3, 2022
Y2D : A open-source YouTube Downloader App built in Flutter
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

May 18, 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.

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

Apr 27, 2022
An open source task manager (todo list) app, developed using Dart language and Flutter framework.
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                

May 24, 2022
A flutter repository meant for open-source contributions in hacktoberfest 2021.
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

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

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 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

May 2, 2022
Spacex-Go Flutter App - Simple yet powerful, open-source SpaceX launch tracker
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

Mar 31, 2022