Class GIF CR Cursos - App Mobile

GIF Introdução

A plataforma CR Cursos nasceu de uma colaboração estratégica entre a escola profissionalizante CR Cursos, em Toritama - PE, e alunos de Cursos de TI. O projeto teve início no âmbito acadêmico na disciplina de Programação para Dispositivos Móveis.


O que começou como um projeto de classe evoluiu para uma solução full-stack robusta, impulsionada por um estudo aprofundado em arquitetura de software e desenvolvimento escalável. Hoje, a plataforma representa a convergência entre o aprendizado acadêmico e as necessidades reais do mercado, entregando uma ferramenta tecnológica de alto impacto para a comunidade escolar do Agreste Pernambucano.

GIF Objetivo

O objetivo central é modernizar a experiência de ensino-aprendizagem da instituição por meio de um ecossistema mobile integrado. A plataforma visa:


GIF Arquitetura do Projeto

Diagrama de Arquitetura CR Cursos

GIF Tecnologias Utilizadas

A escolha da stack tecnológica priorizou ferramentas de mercado consolidadas para garantir manutenibilidade, testabilidade, usabilidade mobile avançada e alta performance:

React Native / Expo
TypeScript
Node.js
Express.js
Firebase Realtime
React Navigation
Docker
Jest (Tests)
Swagger UI

GIF Funcionalidades

A plataforma opera sob um modelo de controle de acesso baseado em funções (RBAC):

GIF Aluno

GIF Professor

GIF Administrador (ADM)

GIF Visualização do Projeto

Demonstração - Visão Geral da Plataforma


Demonstração - Perfil Aluno


Demonstração - Perfil Professor


Demonstração - Perfil Administrador


GIF Estrutura do Banco de Dados e API

O projeto utiliza o Firebase Realtime Database como banco NoSQL e Express.js para orquestrar a API REST sob os princípios de Clean Architecture.

GIF Organização do Banco de Dados (Firebase)

Módulo Descrição Principais Entidades
Núcleo de Usuários Gestão de perfis, permissões e autenticação. alunos, professores, administradores
Gestão Acadêmica Estrutura de ensino e organização escolar. cursos, disciplinas, turmas, classes
Pedagógico Materiais de apoio e avaliação de desempenho. conteudos, atividades, notas, frequencias
Comunicação & Sistema Interações e conteúdos privados. mensagens_privadas, conteudos_livres

GIF Conclusão

A plataforma CR Cursos rege a modernização educacional em Toritama - PE, unindo uma arquitetura móvel fortemente estruturada com TypeScript e React Native a uma API desacoplada sob os princípios de Clean Architecture. Ao integrar testes automatizados, navegação dinâmica baseada em cargos (RBAC) e sincronização em tempo real via Firebase, a solução garante alta disponibilidade, segurança e praticidade para alunos, docentes e gestores da região do Agreste Pernambucano.

GIF Estrutura do Repositório (Back-End)

O repositório do back-end foi desenhado seguindo o padrão Modular Monolith / Modular Architecture aliado à Clean Architecture. Cada domínio da aplicação possui isolamento de suas responsabilidades (regras de negócio, esquemas de validação, controllers, rotas e testes unitários/integração).


back-end/
├── modules/ # Domínios independentes da aplicação
│   ├── administrador/
│   ├── aluno/
│   ├── atividades/
│   ├── auth/ # Fluxos de autenticação e reset de senha
│   ├── classe/
│   ├── conteudo/
│   ├── curso/
│   ├── disciplina/
│   ├── frequencia/
│   ├── notas/
│   ├── privado/
│   ├── professor/
│   └── turma/
│       ├── __tests__/ # Testes de integração do módulo (*Integration.test.js)
│       ├── models/ # Modelos de dados do módulo (*Model.js)
│       ├── types/ # Schemas de validação Zod/Joi (*Schema.js)
│       ├── use-cases/ # Casos de uso e testes unitários (*.js / *.spec.js)
│       ├── utils/ # Auxiliares específicos (ex: geradores de ID)
│       ├── turmaController.js # Orquestrador de requisições HTTP
│       ├── turmaRoutes.js # Definição dos endpoints REST
│       └── turmaService.js # Camada de serviços acadêmicos
├── shared/ # Recursos globais e reutilizáveis
│   ├── config/ # Conexões de serviços (firebase.js)
│   ├── middlewares/ # Autenticação (JWT) e validação RBAC
│   ├── models/ # Schemas globais
│   ├── repositories/ # Acesso unificado de dados (userRepository.js)
│   ├── services/ # Serviços externos (emailService.js)
│   ├── swagger/ # Documentação OpenAPI/Swagger
│   └── templates/ # Templates de e-mail Handlebars (.hbs)
├── docker-compose.yml # Orquestração de containers
├── Dockerfile # Imagem Docker do serviço Node.js
├── jest.config.js # Configuração da suíte de testes Jest
├── package.json # Dependências e scripts do projeto
└── server.js # Ponto de entrada (Entrypoint) da aplicação Express
            

Padronização dos Módulos

GIF Estrutura do Repositório (Front-End Mobile)

O aplicativo móvel foi construído em React Native com Expo e totalmente tipado em TypeScript. O projeto adota uma arquitetura orientada a módulos com padrão MVC Client-Side, garantindo reuso de componentes UI e uma separação limpa de estado, controle de navegação e estilização.


AppCR\MeuApp/
├── assets/ # Recursos estáticos (imagens, fontes, ícones)
├── components/ # Componentes atômicos reutilizáveis em todo o app
│   ├── CustomButton.tsx
│   ├── CustomInput.tsx
│   └── GoogleSignInButton.tsx
├── config/ # Configurações globais de conexão e APIs
│   ├── api.ts # Instância Axios/Fetch HTTP para o back-end
│   └── firebaseConfig.ts # Conexão com Firebase SDK
├── contexts/ # Gerenciamento de estado global (Context API)
│   ├── AuthContext.tsx # Contexto global de autenticação e perfil
│   └── ThemeContext.tsx # Contexto para alteração de temas (Dark/Light)
├── modules/ # Módulos organizados por perfil de acesso (RBAC)
│   ├── admin/ # Recursos e telas exclusivas da gestão escolar
│   ├── aluno/ # Recursos, notas, frequências e visão do estudante
│   ├── auth/ # Telas de login e fluxo de acesso
│   └── professor/ # Lançamento de notas, chamadas e turmas
│       ├── components/ # Componentes visuais do domínio (Ex: Modais, Cards)
│       ├── controllers/ # Lógica de interface, validações e chamadas à API
│       ├── screens/ # Telas do fluxo mobile (Ex: ProfessorHomeScreen.tsx)
│       ├── styles/ # Estilização modularizada (StyleSheet)
│       └── types/ # Interfaces e contratos TypeScript do módulo
├── navigation/ # Roteamento avançado React Navigation
│   ├── AdminTabNavigator.tsx # Navegação em abas para Admin
│   ├── AlunoTabNavigator.tsx # Navegação em abas para Aluno
│   ├── ProfessorTabNavigator.tsx # Navegação em abas para Professor
│   ├── DrawerNavigator.tsx # Menu lateral responsivo
│   └── CustomDrawerContent.tsx
├── styles/ # Estilos globais da aplicação (globalStyles.ts, AppStyles.ts)
├── app.json # Configurações do Expo (Builds, splash screen, ícones)
├── App.tsx # Ponto de inicialização do React Native
├── babel.config.js # Presets e plugins do Babel
├── tsconfig.json # Configuração rigorosa de compilação TypeScript
└── vercel.json # Orquestração para publicação/deploy do web build
            

Destaques da Arquitetura do Front-End

Vamos construir o futuro da educação juntos?

Se você deseja implantar esta solução na sua instituição, discutir parcerias de negócios, colaborar em novos projetos de engenharia ou conhecer mais sobre o meu portfólio tecnológico, entre em contato: