Mama Calendar – aplicativo de lembrete multiplataforma

Written by

in

Mama Calendar é um aplicativo multiplataforma de eventos e lembretes escrito em React Native (Expo) com duas implementações de backend: Node.js + MongoDB e PHP + MariaDB.

O aplicativo permite criar eventos com categorização de emojis, selecionar o tipo de repetição (uma vez, anualmente, mensalmente, semanalmente, diariamente) e visualizar eventos importantes dos próximos 3 dias em uma aba separada “Eventos Importantes”.

Pilha de tecnologia

O frontend é escrito em React Native 0.86 via Expo SDK 57 com TypeScript, Expo Router para navegação e react-native-reanimated para animações. Os símbolos Expo são usados ​​para ícones (símbolos SF no iOS, ícones de materiais no Android/Web).

O backend é implementado em duas versões:

  • Node.js: Express 4, MongoDB 8 via driver nativo, autenticação personalizada com scrypt + salt, gerenciamento manual de tokens. Docker Compose traz o cliente (nginx), servidor e MongoDB.
  • PHP: PHP 8.2 sem frameworks, PDO + MariaDB 11, bcrypt para hash de senha, roteador próprio e carregamento automático de PSR-4 via Composer.

Funções do aplicativo

  • Registro e autorização: sistema simples com nome de usuário/senha e tokens ao portador
  • Eventos CRUD: crie, visualize, edite e exclua eventos com data, emoji e tipo de repetição
  • Filtragem inteligente: A guia Eventos Importantes mostra os eventos dos próximos 3 dias, levando em consideração as regras de repetição. Por exemplo, eventos anuais mostram a ocorrência anual mais próxima, mensalmente – por dia do mês, semanalmente – por dia da semana
  • Seletor de emojis: 20 emojis predefinidos para categorização rápida de eventos
  • Destacando os eventos de hoje: os eventos de hoje são destacados com um fundo vermelho (#B71C1C)
  • Tema escuro: Detecção automática do esquema de cores do sistema com paletas separadas para tema claro e escuro
  • Internacionalização: idiomas russo e inglês via React Context
  • Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
  • Endpoints administrativos: gerenciamento de usuários, tokens e limpeza do banco de dados por meio de tokens mestres

Por que duas implementações de back-end?

A versão Node.js é a principal, mas a versão PHP existe como alternativa para uma hospedagem mais clássica. A API é completamente idêntica, o que permite alternar entre elas sem alterar o código do cliente.

Infraestrutura

Toda a pilha é levantada através do Docker Compose: o cliente é montado através de uma construção multiestágio (Expo export → nginx alpine), um servidor em Node.js, MongoDB 8. Para a versão PHP há um arquivo compose separado com MariaDB 11 e phpunit para testes.

A montagem da versão web é automatizada por um script PowerShell que corrige o API_URL antes da expo export e restaura os originais depois.

Saída

Mama Calendar é um aplicativo multiplataforma completo que cobre o ciclo completo: desde frontend móvel e web no React Native até duas opções do lado do servidor. O projeto é interessante por sua arquitetura, uso de recursos modernos do Expo SDK e implementação de backend duplo.

Links

https://github.com/zefir1990/Mama-Calendar
https://demensdeum.com/software/mama-calendar/events

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *