Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
76fe9c4
scrum-78 tela de editar história e toggle de escrever ou gravar áudio
DanielSantana47 Apr 6, 2026
c718d6a
scrum-78 eslint correção
DanielSantana47 Apr 7, 2026
011d249
scrum-78 lint fix 2
DanielSantana47 Apr 7, 2026
28347fc
Merge pull request #9 from Mandaca-App/feature/scrum-78-tela-editar
DanielSantana47 Apr 7, 2026
33d808a
scrum-80 tela de edição e upload de imagens do estabelecimento
DanielSantana47 Apr 7, 2026
0116fa6
Merge pull request #10 from Mandaca-App/feature/scrum-80-tela-fluxo-i…
DanielSantana47 Apr 7, 2026
4b842ec
scrum-27 implementando a api no header e no progresso da home
DanielSantana47 Apr 8, 2026
2d17b58
scrum-27 completeProfile useEffect fix
DanielSantana47 Apr 8, 2026
6332438
scrum-27 lint fix
DanielSantana47 Apr 8, 2026
36eabf6
Merge pull request #11 from Mandaca-App/scrum-27-home-dashboard
DanielSantana47 Apr 8, 2026
5fe0ebe
Merge branch 'main' into develop
ronaldo-ribeirof Apr 10, 2026
13ff712
scrum-77 implementação da api
DanielSantana47 Apr 10, 2026
8e1ace1
Merge pull request #13 from Mandaca-App/feature/scrum-77-carrossel
DanielSantana47 Apr 11, 2026
f7e6b9d
scrum-80 implementação da api no fluxo de edição de imagens da empresa
DanielSantana47 Apr 11, 2026
1cfde0b
Merge pull request #14 from Mandaca-App/feature/scrum-80-tela-fluxo-i…
DanielSantana47 Apr 11, 2026
f23188a
implementando a api nos campos de edição de história e no botão de mapa
DanielSantana47 Apr 13, 2026
e1833bd
scrum-78 lint fix
DanielSantana47 Apr 13, 2026
9eabb0f
Merge pull request #15 from Mandaca-App/feature/scrum-78-tela-editar
DanielSantana47 Apr 13, 2026
9bdd0d2
scrum-78 feature de envio de áudio
DanielSantana47 Apr 13, 2026
2464e62
scrum-34 pegando imagem da api
DanielSantana47 Apr 13, 2026
5a08819
scrum-34 lint fix
DanielSantana47 Apr 13, 2026
28c8719
Merge pull request #16 from Mandaca-App/SCRUM-34-minha-empresa
DanielSantana47 Apr 13, 2026
1f9dddc
[SCRUM-78] fix: corrige upload de áudio e limite de caracteres da his…
degoNDL Apr 14, 2026
aaea01e
[SCRUM-78] fix: corrige trailing comma no audioBox
degoNDL Apr 14, 2026
ef10ce4
Merge pull request #17 from Mandaca-App/feature/scrum-78-tela-editar
DanielSantana47 Apr 14, 2026
a835ea0
scrum-41 interface da tela de relatório
DanielSantana47 Apr 15, 2026
d2a2630
scrim-41 adicionando o skeleton
DanielSantana47 Apr 15, 2026
01cb5cc
scrum-41 correção de rota das recomendações
DanielSantana47 Apr 15, 2026
4eddc08
scrum-41 correção dos nomes dos arquivos
DanielSantana47 Apr 15, 2026
dda9714
feat(help): implement help center and faq details screens
FuscaRetratil Apr 20, 2026
9d09b3f
fix(help): resolve lint errors and formatting in help screens
FuscaRetratil Apr 20, 2026
2c7e69d
fix(help): resolve critical lint errors (unescaped entities and max-len)
FuscaRetratil Apr 20, 2026
9df4ac4
scrum-43 report.tsx component name fix
DanielSantana47 Apr 20, 2026
60f64ac
Merge pull request #19 from Mandaca-App/feature/scrum-43-tela-relatorios
FuscaRetratil Apr 20, 2026
8d9500e
SCRUM-198 chore: cria constants/api.ts com EXPO_PUBLIC_API_URL
notsogreatdavi Apr 21, 2026
7ba3605
SCRUM-198 chore: substitui URLs hardcoded do backend por API_URL
notsogreatdavi Apr 21, 2026
d715616
SCRUM-198 chore: cria .env.example com EXPO_PUBLIC_API_URL
notsogreatdavi Apr 21, 2026
f326bfb
SCRUM-198 chore: adiciona script build:web ao package.json
notsogreatdavi Apr 21, 2026
5829b53
SCRUM-198 chore: adiciona render.yaml com deploy web production
notsogreatdavi Apr 21, 2026
c37e539
SCRUM-198 chore: adiciona eas.json com perfis de build mobile
notsogreatdavi Apr 21, 2026
6acf9ff
SCRUM-198 chore: vincula projeto ao Expo via eas init
notsogreatdavi Apr 21, 2026
6c4c63b
SCRUM-198 chore: adiciona bundleIdentifier iOS ao app.json
notsogreatdavi Apr 21, 2026
afa42e3
SCRUM-198 chore: adiciona package Android ao app.json
notsogreatdavi Apr 21, 2026
b4b1e14
SCRUM-198 chore: adiciona buildType apk ao perfil preview do eas.json
notsogreatdavi Apr 22, 2026
2cd0bc9
SCRUM-198 chore: adiciona GitHub Actions workflow para EAS Build Android
notsogreatdavi Apr 22, 2026
47c5196
SCRUM-198 chore: adiciona comentario automatico de build no PR
notsogreatdavi Apr 22, 2026
ee31026
SCRUM-198 chore: adiciona eas-cli como dependencia local
notsogreatdavi Apr 22, 2026
3ad3ac7
SCRUM-198 chore: altera trigger de build Android para label no PR
notsogreatdavi Apr 22, 2026
f81ac6e
SCRUM-198 chore: limita build preview para arm64-v8a reduzindo tempo …
notsogreatdavi Apr 22, 2026
fe57189
SCRUM-198 chore: adiciona --no-wait para postar comentario no PR imed…
notsogreatdavi Apr 22, 2026
082dd6f
SCRUM-198 ci: cria workflow de release Android semanal via GitHub Rel…
notsogreatdavi Apr 22, 2026
36e0546
SCRUM-198 ci: remove trigger de push em main do workflow de PR build
notsogreatdavi Apr 22, 2026
90be1e6
SCRUM-198 fix: adiciona barra final na URL do endpoint de transcricao
notsogreatdavi Apr 22, 2026
0c67c13
Merge pull request #22 from Mandaca-App/chore/SCRUM-198-deploy-automa…
notsogreatdavi Apr 23, 2026
b197ffc
SCRUM-198 chore: adiciona arquivo VERSION com versao inicial 0.1.0
notsogreatdavi Apr 23, 2026
5077d00
SCRUM-198 ci: reescreve eas-release com semver, auto-bump e apk fixo
notsogreatdavi Apr 23, 2026
7bdef76
Merge pull request #25 from Mandaca-App/chore/SCRUM-198-versioning-ea…
ronaldo-ribeirof Apr 23, 2026
c1542d9
SCRUM-198 ci: usa generate-notes e estrutura de release igual ao backend
notsogreatdavi Apr 23, 2026
ff61c1a
SCRUM-198 ci: separa release em dois jobs com no-wait e polling do apk
notsogreatdavi Apr 23, 2026
9d3726c
SCRUM-198 ci: remove token desnecessario do checkout do job attach-apk
notsogreatdavi Apr 23, 2026
f186a03
SCRUM-198 ci: substitui polling via REST API pelo eas build:view no j…
notsogreatdavi Apr 23, 2026
601bb97
SCRUM-198 chore: auto-bump version to 0.1.1
github-actions[bot] Apr 23, 2026
f5e36ec
SCRUM-198 ci: usa graphql api do expo com logs e set +e no job attach…
notsogreatdavi Apr 23, 2026
99a19ff
Merge branch 'main' of github.com:Mandaca-App/mandaca-frontend
notsogreatdavi Apr 23, 2026
2348d2d
SCRUM-198 chore: auto-bump version to 0.1.2
github-actions[bot] Apr 23, 2026
71c2757
Merge pull request #20 from Mandaca-App/SCRUM-187-Front-Criar-interfa…
FuscaRetratil Apr 24, 2026
9cde3c1
Merge branch 'main' into SCRUM-200-mergeDEV-Main
ronaldo-ribeirof Apr 24, 2026
082b92f
Merge pull request #27 from Mandaca-App/SCRUM-200-mergeDEV-Main
FuscaRetratil Apr 24, 2026
477d70d
Scrum-205 fix: deteccao dos topicos da transcricao
ronaldo-ribeirof Apr 25, 2026
0a330f2
scrum-205 fix: lint fix
ronaldo-ribeirof Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# URL da API do backend (sem barra no final)
# Production: https://mandaca-backend-production.onrender.com
EXPO_PUBLIC_API_URL=http://localhost:8000
45 changes: 45 additions & 0 deletions .github/workflows/eas-build-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: EAS Build Android

on:
pull_request:
types: [labeled]

jobs:
build:
runs-on: ubuntu-latest
if: github.event.label.name == 'build-android'
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- run: npm ci

- uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Build Android APK
id: eas-build
run: |
OUTPUT=$(npx eas build --platform android --profile preview --non-interactive --no-wait --json 2>/dev/null)
BUILD_ID=$(echo "$OUTPUT" | jq -r '.[0].id')
echo "build_id=$BUILD_ID" >> $GITHUB_OUTPUT

- name: Comment on PR with build link
if: github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## Android Build (Preview)\n\nBuild enviado para o EAS. Acompanhe e baixe o APK quando terminar (~5 min):\n\n**[Ver build no Expo](https://expo.dev/accounts/notgreatdavi/projects/mandaca-frontend/builds/${{ steps.eas-build.outputs.build_id }})**`
})
189 changes: 189 additions & 0 deletions .github/workflows/eas-release-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
name: EAS Release Android (Weekly)

on:
schedule:
- cron: "0 8 * * 0"
workflow_dispatch:

jobs:
create-release:
name: Criar Release
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
version: ${{ steps.version.outputs.version }}
build_id: ${{ steps.eas-build.outputs.build_id }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GH_RELEASE_TOKEN }}

- name: Configurar git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Auto-bump patch se necessario
id: version
run: |
git fetch --tags origin
CURRENT=$(cat VERSION)
if git tag --list | grep -q "^v${CURRENT}$"; then
MAJOR=$(echo "$CURRENT" | cut -d. -f1)
MINOR=$(echo "$CURRENT" | cut -d. -f2)
PATCH=$(echo "$CURRENT" | cut -d. -f3)
NEW_PATCH=$((PATCH + 1))
NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}"
echo "$NEW_VERSION" > VERSION
git add VERSION
git commit -m "SCRUM-198 chore: auto-bump version to ${NEW_VERSION}"
git push origin main
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
else
echo "version=$CURRENT" >> $GITHUB_OUTPUT
fi

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- name: Instalar dependencias
run: npm ci

- name: Setup EAS CLI
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Disparar build Android no EAS
id: eas-build
run: |
OUTPUT=$(npx eas build \
--platform android \
--profile preview \
--non-interactive \
--no-wait \
--json 2>/dev/null)
echo "build_id=$(echo "$OUTPUT" | jq -r '.[0].id')" >> $GITHUB_OUTPUT

- name: Criar tag git
env:
GH_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
run: |
VERSION="v${{ steps.version.outputs.version }}"
git tag "$VERSION"
git push origin "$VERSION"

- name: Gerar notas da release
env:
GH_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
BUILD_ID: ${{ steps.eas-build.outputs.build_id }}
run: |
VERSION="v${{ steps.version.outputs.version }}"
APK_URL="https://github.com/${{ github.repository }}/releases/latest/download/mandaca-preview.apk"
EXPO_URL="https://expo.dev/accounts/notgreatdavi/projects/mandaca-frontend/builds/${BUILD_ID}"
GENERATED=$(gh api repos/${{ github.repository }}/releases/generate-notes \
--field tag_name="$VERSION" \
--jq '.body')

{
echo "## Links"
echo ""
echo "**Frontend Web (Production):** https://mandaca-frontend-production.onrender.com"
echo "**APK Android:** [mandaca-preview.apk](${APK_URL}) — o build leva alguns minutos. Acompanhe em tempo real: [Ver build no Expo](${EXPO_URL})"
echo ""
echo "---"
echo ""
echo "$GENERATED"
echo ""
echo "---"
echo ""
echo "## Instalacao no Android"
echo ""
echo "1. Aguarde o build concluir no Expo (link acima) e entao baixe o APK"
echo "2. No celular, abra o arquivo baixado (pode ser necessario habilitar *Instalar apps de fontes desconhecidas* nas configuracoes)"
echo "3. Siga o assistente de instalacao"
echo ""
echo "> Build preview gerado automaticamente a partir da branch \`main\`. Compativel com Android arm64-v8a."
} > /tmp/release-notes.md

- name: Criar GitHub Release
env:
GH_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
run: |
VERSION="v${{ steps.version.outputs.version }}"
gh release create "$VERSION" \
--title "Release ${VERSION}" \
--latest \
--notes-file /tmp/release-notes.md

attach-apk:
name: Anexar APK ao Release
runs-on: ubuntu-latest
needs: create-release
permissions:
contents: write

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Aguardar build e baixar APK
env:
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
BUILD_ID: ${{ needs.create-release.outputs.build_id }}
run: |
set +e
echo "Aguardando conclusao do build ${BUILD_ID}..."
QUERY='{"query":"query($id:ID!){builds{byId(buildId:$id){id status artifacts{applicationArchiveUrl}}}}","variables":{"id":"'"${BUILD_ID}"'"}}'

for attempt in $(seq 1 60); do
RESPONSE=$(curl -s -X POST \
-H "Authorization: Bearer ${EXPO_TOKEN}" \
-H "Content-Type: application/json" \
-d "${QUERY}" \
https://api.expo.dev/graphql)
STATUS=$(echo "${RESPONSE}" | jq -r '.data.builds.byId.status // empty' 2>/dev/null)

if [ -z "${STATUS}" ]; then
echo "Tentativa ${attempt}: resposta inesperada. Preview: $(echo "${RESPONSE}" | head -c 300)"
sleep 30
continue
fi

case "${STATUS}" in
FINISHED)
APK_URL=$(echo "${RESPONSE}" | jq -r '.data.builds.byId.artifacts.applicationArchiveUrl')
echo "Build concluido. Baixando APK de ${APK_URL}..."
curl -L -o mandaca-preview.apk "${APK_URL}"
ls -lh mandaca-preview.apk
exit 0
;;
ERRORED|CANCELED|CANCELLED)
echo "Build falhou com status: ${STATUS}"
exit 1
;;
*)
echo "Status: ${STATUS}. Aguardando 30s (tentativa ${attempt}/60)..."
sleep 30
;;
esac
done

echo "Timeout apos 30 minutos aguardando o build"
exit 1

- name: Anexar APK ao release existente
env:
GH_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
VERSION: ${{ needs.create-release.outputs.version }}
run: |
gh release upload "v${VERSION}" mandaca-preview.apk --clobber
echo "APK anexado ao release v${VERSION}."
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,6 @@ app-example
# generated native folders
/ios
/android

# Qwen metadata
.qwen/
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.2
27 changes: 23 additions & 4 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,28 @@
"userInterfaceStyle": "light",
"newArchEnabled": true,
"ios": {
"supportsTablet": true
"supportsTablet": true,
"bundleIdentifier": "com.mandaca.frontend",
"infoPlist": {
"ITSAppUsesNonExemptEncryption": false
}
},
"android": {
"package": "com.mandaca.frontend",
"adaptiveIcon": {
"backgroundColor": "#E6F4FE",
"foregroundImage": "./assets/images/android-icon-foreground.png",
"backgroundImage": "./assets/images/android-icon-background.png",
"monochromeImage": "./assets/images/android-icon-monochrome.png"
},
"edgeToEdgeEnabled": true,
"predictiveBackGestureEnabled": false
"predictiveBackGestureEnabled": false,
"permissions": [
"android.permission.RECORD_AUDIO",
"android.permission.MODIFY_AUDIO_SETTINGS",
"android.permission.FOREGROUND_SERVICE",
"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"
]
},
"web": {
"output": "static",
Expand All @@ -42,11 +53,19 @@
],
"expo-font",
"expo-image",
"expo-web-browser"
"expo-web-browser",
"expo-audio"
],
"experiments": {
"typedRoutes": true,
"reactCompiler": true
}
},
"extra": {
"router": {},
"eas": {
"projectId": "7272b860-132a-449b-89d8-a7d586f8fe7b"
}
},
"owner": "notgreatdavi"
}
}
Loading
Loading