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 *

DemensDeum
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.