Skip to content

Josec690/PI-SeCond-6DSM

Repository files navigation

SeCond

Aplicação de gerenciamento seguro e inteligente de condomínio desenvolvida em Kotlin Multiplatform com Jetpack Compose.

O SeCond ajuda na gestão de entrada e saída de pessoas em um condomínio. Pelo próprio aplicativo, o morador pode informar quem vai chegar ou sair, reduzindo a necessidade de contato direto com a portaria por interfone.

Equipe do Projeto

Este projeto foi realizado com a colaboração dos seguintes membros, listados em ordem alfabética:

Descrição do Projeto

O SeCond é um frontend multiplataforma para gestão de condomínio, com telas de autenticação, dashboard e navegação entre os módulos do sistema.

O projeto utiliza:

  • Kotlin Multiplatform
  • Jetpack Compose / Compose Multiplatform
  • Ktor Client
  • Kotlin Serialization
  • Navigation Compose
  • Material Icons
  • API REST Spring Boot + MySQL

Módulos e funcionalidades principais:

  • Avisos
  • Chat com a portaria
  • Convidados
  • Documentos
  • Encomendas
  • Moradores
  • Prestadores
  • Reservas
  • Veículos

Tema da Interface

  • O menu lateral possui um Switch para alternar entre tema claro e escuro.
  • A preferência de tema é persistida no dispositivo e mantida após reiniciar o app.
  • O comportamento atual usa o tema escuro como padrão inicial.

Pré-requisitos

Antes de rodar o projeto, instale ou configure:

  • JDK compatível com o projeto, preferencialmente JDK 11 ou superior.
  • Android Studio ou IntelliJ IDEA.
  • Android SDK configurado para execução mobile.
  • Um dispositivo Android com depuração USB ativada ou um emulador Android.
  • Gradle Wrapper do próprio projeto, disponível em gradlew e gradlew.bat.

No Windows, os comandos abaixo usam .\gradlew.bat. Em macOS ou Linux, use ./gradlew no lugar.

Como Abrir o Projeto

  1. Baixe ou clone este repositório.
  2. Abra a pasta raiz PI-SeCond-6DSM no Android Studio ou IntelliJ IDEA.
  3. Aguarde a sincronização do Gradle terminar.
  4. Confirme que o módulo composeApp foi carregado.

Como Rodar no Mobile Android

Opção 1: Android Studio

  1. Abra o projeto no Android Studio.
  2. Conecte um celular Android com depuração USB ativada ou inicie um emulador.
  3. Selecione a configuração de execução do módulo composeApp.
  4. Clique em Run para compilar, instalar e abrir o aplicativo no dispositivo.

Opção 2: Terminal

Na pasta raiz do projeto, execute:

.\gradlew.bat :composeApp:installDebug

Esse comando compila e instala a versão debug no dispositivo Android conectado ou no emulador ativo.

Para abrir o app pelo terminal depois da instalação, use:

adb shell monkey -p second.project 1

Se o dispositivo não for encontrado, verifique a conexão com:

adb devices

Como Rodar no Desktop

Na pasta raiz do projeto, execute:

.\gradlew.bat :composeApp:run

Esse comando inicia a versão Desktop/JVM do aplicativo.

Também é possível executar diretamente a task JVM:

.\gradlew.bat :composeApp:jvmRun

Como Rodar no Web

O projeto possui suporte Web por Kotlin/JS e Kotlin/Wasm.

Web com Kotlin/JS

Use esta opção como caminho principal para rodar no navegador:

.\gradlew.bat :composeApp:jsBrowserDevelopmentRun

O Gradle iniciará um servidor de desenvolvimento. A URL será exibida no terminal, normalmente em http://localhost:8080.

A task jsBrowserDevelopmentRun fica em execução enquanto o servidor Web estiver ativo. Para encerrar, use Ctrl+C no terminal.

Para apenas validar se o bundle Web compila, sem manter o servidor aberto, execute:

.\gradlew.bat :composeApp:jsBrowserDevelopmentWebpack

Web com Kotlin/Wasm

Também é possível rodar a versão WebAssembly:

.\gradlew.bat :composeApp:wasmJsBrowserDevelopmentRun

Use um navegador moderno com suporte a WebAssembly. Se houver incompatibilidade no navegador, rode a versão Kotlin/JS.

Solução de Problemas no Web

Se a execução Web falhar com erro parecido com Cannot find module '../Template' ou apontando para build/js/node_modules/webpack, limpe o pacote Webpack do cache do Yarn e reinstale as dependências JS geradas:

$node = Get-ChildItem "$env:USERPROFILE\.gradle\nodejs" -Recurse -Filter node.exe | Sort-Object LastWriteTime -Descending | Select-Object -First 1
$yarn = Get-ChildItem "$env:USERPROFILE\.gradle\yarn" -Recurse -Filter yarn.js | Sort-Object LastWriteTime -Descending | Select-Object -First 1

& $node.FullName $yarn.FullName cache clean webpack

if (Test-Path .\build\js\node_modules) {
    Remove-Item -LiteralPath .\build\js\node_modules -Recurse -Force
}

.\gradlew.bat :composeApp:jsBrowserDevelopmentRun

Esse problema normalmente indica cache JS incompleto ou corrompido, não erro no código Kotlin do projeto.

Build e Validação

Para conferir se o projeto compila corretamente:

.\gradlew.bat build

Para gerar a distribuição Web de produção com Kotlin/JS:

.\gradlew.bat :composeApp:jsBrowserDistribution

Para gerar a distribuição Web de produção com Kotlin/Wasm:

.\gradlew.bat :composeApp:wasmJsBrowserDistribution

Observações

  • O projeto está estruturado como aplicação Kotlin Multiplatform com interface em Compose.
  • O target mobile configurado atualmente é Android.
  • A versão Desktop roda sobre JVM.
  • A versão Web pode ser executada via Kotlin/JS ou Kotlin/Wasm.
  • Caso o backend remoto seja utilizado, confira a URL base em composeApp/src/commonMain/kotlin/second/project/repository/ApiConfig.kt.
  • As imagens e logos do app devem ficar dentro dos recursos do projeto para serem carregadas corretamente.

About

Aplicação de Gerenciamento Seguro e Inteligente de Condominio.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages