Files
smartagenda_pap/main.tex

319 lines
27 KiB
TeX

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[portuguese]{babel}
\usepackage{lmodern}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{array}
\usepackage{longtable}
\usepackage{enumitem}
\usepackage{fancyhdr}
\geometry{
left=3cm,
right=2.5cm,
top=2.5cm,
bottom=2.5cm
}
\onehalfspacing
\setlength{\parindent}{1.25cm}
\setlength{\parskip}{0.2cm}
\hypersetup{
colorlinks=true,
linkcolor=black,
urlcolor=blue,
pdftitle={PAP - Smart Agenda},
pdfauthor={Rodrigo Santos}
}
\newcommand{\appname}{Smart Agenda}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\small \appname}
\fancyfoot[R]{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\begin{document}
% Capa
\begin{titlepage}
\thispagestyle{empty}
\centering
\vspace*{2cm}
{\Large \textbf{Prova de Aptidão Profissional}\par}
\vspace{1.5cm}
{\Huge \textbf{\appname}\par}
\vspace{0.8cm}
{\Large Aplicação para Gestão de Agendamentos em Barbearias\par}
\vspace{2.5cm}
\begin{flushleft}
\large
\textbf{Aluno:} Rodrigo Santos\\[0.35cm]
\textbf{Curso/Turma:} \underline{\hspace{7cm}}\\[0.35cm]
\textbf{Escola:} \underline{\hspace{8cm}}\\[0.35cm]
\textbf{Ano letivo:} 2025/2026\\[0.35cm]
\textbf{Professor orientador:} Professor João
\end{flushleft}
\vfill
{\large \today\par}
\end{titlepage}
\pagenumbering{roman}
\pagestyle{fancy}
% Agradecimentos
\section*{Agradecimentos}
Gostaria de agradecer, em primeiro lugar, aos professores em geral, por todo o apoio, acompanhamento e conhecimentos transmitidos ao longo do meu percurso escolar. O contributo de cada professor foi importante para que eu pudesse desenvolver as competências necessárias para realizar este projeto e ultrapassar as dificuldades encontradas durante o seu desenvolvimento.
Agradeço especialmente ao Professor João, pela orientação, ajuda e disponibilidade ao longo da realização da minha Prova de Aptidão Profissional. O seu acompanhamento foi essencial para manter o projeto organizado, melhorar o trabalho desenvolvido e encontrar soluções para os problemas que foram surgindo.
Quero também agradecer à Professora Helena, pelo apoio, acompanhamento e disponibilidade demonstrados durante este percurso. A sua ajuda foi importante para a concretização deste trabalho e para a minha evolução enquanto aluno.
Agradeço ainda à Diretora Beatriz, pelo incentivo, apoio e acompanhamento durante o meu percurso escolar. O seu contributo foi importante para criar um ambiente de responsabilidade, motivação e dedicação.
Aos meus colegas, deixo também o meu agradecimento pela colaboração, troca de ideias, ajuda e espírito de entreajuda. Ao longo do desenvolvimento do projeto, o apoio dos colegas foi importante para esclarecer dúvidas, partilhar opiniões e manter a motivação.
Por fim, agradeço à minha família, pelo apoio, paciência, motivação e confiança ao longo deste trabalho. A sua presença foi fundamental para continuar a esforçar-me e concluir este projeto da melhor forma possível.
\newpage
% Glossário
\section*{Glossário}
\textbf{API:} Interface de Programação de Aplicações. Permite que diferentes sistemas comuniquem entre si.
\textbf{App:} Abreviatura de aplicação. Neste relatório, refere-se à aplicação móvel \appname.
\textbf{AsyncStorage:} Sistema de armazenamento local usado em aplicações React Native para guardar pequenas informações no dispositivo.
\textbf{Autenticação:} Processo que permite verificar a identidade de um utilizador através de dados como email e palavra-passe.
\textbf{Base de Dados:} Sistema usado para guardar e organizar informação. No projeto, é utilizada para armazenar utilizadores, barbearias, serviços, produtos, marcações e pedidos.
\textbf{CRUD:} Sigla para Create, Read, Update e Delete. Representa as operações de criar, ler, atualizar e apagar dados.
\textbf{Dashboard:} Painel de gestão onde a barbearia pode consultar e administrar informação importante do negócio.
\textbf{Expo:} Plataforma usada para facilitar o desenvolvimento, teste e execução de aplicações React Native.
\textbf{React Native:} Tecnologia utilizada para desenvolver aplicações móveis com JavaScript e React.
\textbf{Supabase:} Plataforma usada no projeto para autenticação, base de dados e armazenamento de imagens.
\textbf{TypeScript:} Linguagem baseada em JavaScript que permite usar tipos, tornando o código mais organizado e seguro.
\newpage
% Índice
\renewcommand{\contentsname}{Conteúdo}
\tableofcontents
\newpage
\pagenumbering{arabic}
\section{Introdução}
A presente Prova de Aptidão Profissional tem como tema o desenvolvimento da aplicação \appname, uma solução digital criada para facilitar a gestão de agendamentos em barbearias. O projeto foi desenvolvido por Rodrigo Santos e tem como principal objetivo responder a uma necessidade comum em muitos estabelecimentos: organizar marcações, serviços, barbeiros, produtos, horários e pedidos de uma forma mais simples, rápida e eficiente.
Atualmente, muitas barbearias ainda recorrem a métodos manuais para gerir as suas marcações, como chamadas telefónicas, mensagens, redes sociais ou agendas em papel. Apesar de estes métodos continuarem a ser usados, podem causar vários problemas, como esquecimentos, marcações sobrepostas, dificuldade em consultar horários disponíveis e perda de tempo tanto para os clientes como para os profissionais.
O \appname{} surge como uma solução para modernizar este processo. A aplicação permite que os clientes pesquisem barbearias, consultem serviços, escolham barbeiros, selecionem datas e horários, façam marcações e acompanhem os seus pedidos. Ao mesmo tempo, permite que as barbearias tenham acesso a uma área de gestão onde podem controlar a agenda, os serviços, os produtos, a equipa, os contactos, os horários e outras informações importantes do estabelecimento.
Este projeto permitiu aplicar conhecimentos adquiridos ao longo do curso, nomeadamente na área da programação, desenvolvimento mobile, bases de dados, autenticação, navegação entre ecrãs, gestão de estado e criação de interfaces. Para além da componente técnica, o projeto também exigiu organização, planeamento, pesquisa e capacidade de resolver problemas.
\subsection{Planeamento do Projeto}
O planeamento do projeto foi uma etapa essencial para definir o funcionamento da aplicação e organizar o desenvolvimento. Antes da implementação, foi necessário identificar o problema a resolver, pensar nos utilizadores da aplicação e definir as funcionalidades mais importantes para cada tipo de conta.
Inicialmente, foi definido que a aplicação teria dois tipos principais de utilizadores: cliente e barbearia. O cliente teria acesso à pesquisa de barbearias, consulta de serviços, criação de marcações, carrinho de produtos e perfil pessoal. A barbearia teria acesso a uma área de gestão, onde poderia consultar marcações, gerir serviços, produtos, barbeiros, horários, contactos e dados do estabelecimento.
Depois desta definição, o trabalho foi dividido em várias fases. A primeira fase consistiu na criação da estrutura do projeto em React Native com Expo e TypeScript. De seguida, foi criada a navegação entre ecrãs, separando a área de autenticação, a área do cliente e a área da barbearia. Posteriormente, foi feita a integração com o Supabase, responsável pela autenticação, base de dados e armazenamento de imagens.
Durante o planeamento, também foi necessário pensar na organização dos dados. Foram identificadas entidades como utilizadores, perfis, barbearias, serviços, barbeiros, produtos, marcações, pedidos, avaliações, notificações e lista de espera. Esta estrutura permitiu desenvolver uma aplicação mais completa e próxima de uma solução real.
\subsection{Apresentação da Empresa (opcional)}
No contexto deste projeto, não existiu uma empresa externa responsável pelo desenvolvimento da aplicação. O \appname{} foi desenvolvido como projeto individual no âmbito da Prova de Aptidão Profissional, tendo como objetivo simular uma solução útil para barbearias e clientes.
Apesar de não estar associado a uma empresa real, o projeto foi pensado como se pudesse ser aplicado num contexto profissional. A aplicação foi idealizada para pequenos negócios, especialmente barbearias, que necessitam de ferramentas simples e acessíveis para organizar o seu dia a dia. Desta forma, o \appname{} funciona como uma proposta de produto digital orientado para a gestão de serviços locais.
A solução procura responder a necessidades reais, como a marcação de serviços, organização da agenda, gestão de profissionais, controlo de produtos e melhoria da comunicação com os clientes. Assim, mesmo não existindo uma empresa envolvida, o projeto aproxima-se de um cenário de trabalho real, onde é necessário desenvolver uma aplicação funcional, organizada e útil.
\section{Contexto}
O \appname{} enquadra-se na área das aplicações móveis e da digitalização de serviços. Cada vez mais os clientes procuram soluções rápidas e acessíveis através do telemóvel, evitando deslocações ou contactos demorados. Ao mesmo tempo, os pequenos negócios precisam de ferramentas que lhes permitam organizar melhor o seu funcionamento e melhorar o atendimento.
As barbearias são um exemplo de negócio onde a gestão de horários é muito importante. Um erro numa marcação pode causar atrasos, insatisfação dos clientes ou perda de tempo para os profissionais. Quando existem vários barbeiros, diferentes serviços e produtos para venda, a organização torna-se ainda mais importante.
Neste contexto, o \appname{} pretende centralizar numa única aplicação as principais tarefas relacionadas com a marcação e gestão de serviços de barbearia. A aplicação foi pensada para ser usada tanto por clientes como por barbearias, criando uma ligação direta entre quem procura o serviço e quem o presta.
\subsection{Caraterização da Empresa (opcional)}
Como o projeto não foi desenvolvido dentro de uma empresa específica, esta secção é adaptada à caraterização do produto criado. O \appname{} pode ser entendido como uma solução digital direcionada para barbearias, funcionando como uma plataforma de apoio à gestão do negócio.
A aplicação foi pensada para estabelecimentos que prestam serviços como cortes de cabelo, barba, lavagem, tratamentos e outros serviços relacionados. Para além disso, também permite a venda de produtos, como artigos de cuidado capilar ou produtos de barba, através de um carrinho integrado.
O público-alvo da aplicação divide-se em dois grupos. O primeiro grupo é composto pelos clientes, que procuram marcar serviços de forma rápida. O segundo grupo é composto pelas barbearias, que precisam de gerir marcações, equipa, serviços, produtos e informações do estabelecimento.
\subsubsection{Caraterização do Polo da Empresa}
No âmbito deste projeto, o ``polo'' pode ser interpretado como o ambiente onde a aplicação seria utilizada. Esse ambiente corresponde ao funcionamento diário de uma barbearia, onde existem clientes, profissionais, horários, serviços e produtos.
Numa barbearia, é necessário saber que serviços estão disponíveis, quais os barbeiros que os realizam, que horários existem, que marcações estão pendentes ou confirmadas e que produtos se encontram em stock. A aplicação procura organizar estes elementos de forma simples, permitindo que a barbearia tenha maior controlo sobre a sua atividade.
O \appname{} foi desenvolvido para funcionar como uma ferramenta de apoio neste contexto. Através do painel de gestão, a barbearia pode consultar a agenda, alterar estados de marcações, criar serviços, adicionar produtos, gerir barbeiros e atualizar os seus dados. Para o cliente, a aplicação disponibiliza uma experiência mais direta, centrada na pesquisa e marcação.
\subsection{Perfil de Desempenho do Técnico de Informática de Gestão}
O desenvolvimento do \appname{} está relacionado com várias competências do perfil de um Técnico de Informática de Gestão. Este perfil exige capacidade para analisar problemas, planear soluções, desenvolver aplicações, trabalhar com bases de dados, criar interfaces e garantir que os sistemas respondem às necessidades dos utilizadores.
Durante o projeto, foi necessário aplicar conhecimentos de programação, nomeadamente através de React Native, Expo e TypeScript. Também foi necessário compreender a organização de uma aplicação por componentes, páginas, contexto global, navegação e tipos de dados. Esta organização é importante para garantir que o projeto seja mais fácil de manter e evoluir.
Outra competência importante foi a integração com uma base de dados. O projeto utiliza Supabase para autenticação, armazenamento e gestão de dados. Esta integração exigiu compreender como criar, consultar, atualizar e apagar informações relacionadas com perfis, barbearias, serviços, barbeiros, produtos, marcações, pedidos, notificações e avaliações.
O projeto também exigiu competências de análise e resolução de problemas. Ao longo do desenvolvimento surgiram dificuldades relacionadas com a navegação, autenticação, atualização de dados, gestão do estado da aplicação e organização da interface. Resolver estes problemas contribuiu para desenvolver autonomia, responsabilidade e capacidade de pesquisa.
\subsection{Objetivos da Formação em Contexto de Trabalho}
Apesar de o projeto estar associado à Prova de Aptidão Profissional, os seus objetivos relacionam-se com a aplicação prática de conhecimentos em contexto de trabalho. O desenvolvimento do \appname{} permitiu simular um processo real de criação de uma aplicação, desde a identificação do problema até à implementação da solução.
Um dos principais objetivos foi desenvolver uma aplicação funcional que respondesse a uma necessidade concreta. Para isso, foi necessário pensar no problema da gestão manual de marcações e criar uma solução que facilitasse tanto o trabalho das barbearias como a experiência dos clientes.
Outro objetivo foi consolidar conhecimentos técnicos. O projeto permitiu trabalhar com desenvolvimento mobile, navegação, autenticação, bases de dados, armazenamento, notificações, gestão de estado e design de interface. Estes conhecimentos são importantes para um Técnico de Informática de Gestão, pois estão relacionados com o desenvolvimento e manutenção de soluções digitais.
Também foi objetivo desenvolver competências pessoais e profissionais, como organização, planeamento, autonomia, persistência e capacidade de resolver problemas. Estas competências são fundamentais em qualquer contexto de trabalho, especialmente na área da informática, onde é frequente encontrar desafios técnicos que exigem pesquisa e adaptação.
\subsection{Funções Exercidas na Empresa (opcional)}
Como não existiu uma empresa externa associada ao projeto, as funções exercidas correspondem às tarefas realizadas durante o desenvolvimento da aplicação. Ao longo do projeto, assumi funções semelhantes às de um programador e analista de software.
Entre as principais funções realizadas estiveram a análise do problema, definição dos requisitos, planeamento das funcionalidades, criação da estrutura do projeto, desenvolvimento dos ecrãs, implementação da navegação, integração com Supabase, criação das funcionalidades de cliente e barbearia, testes e correção de erros.
Também foram realizadas tarefas relacionadas com a experiência do utilizador, como a organização dos ecrãs, criação de botões, formulários, cartões, filtros e separadores. O objetivo foi garantir que a aplicação fosse simples de usar, tanto para clientes como para barbearias.
Estas funções permitiram compreender melhor o processo de desenvolvimento de uma aplicação. Foi necessário pensar não só no código, mas também na utilidade da solução, na organização dos dados e na forma como o utilizador interage com a aplicação.
\section{Descrição Técnica}
O \appname{} foi desenvolvido com React Native, Expo e TypeScript. A escolha destas tecnologias permitiu criar uma aplicação mobile organizada e preparada para funcionar em diferentes plataformas. O Expo facilitou o processo de desenvolvimento e teste, enquanto o TypeScript ajudou a tornar o código mais seguro através da definição de tipos.
A aplicação está organizada em várias pastas. A pasta \texttt{components} contém elementos reutilizáveis da interface, como botões, cartões, campos de texto e badges. A pasta \texttt{pages} contém os principais ecrãs da aplicação, como login, registo, exploração, detalhes da barbearia, marcação, carrinho, perfil e dashboard. A pasta \texttt{context} contém o \texttt{AppContext}, responsável pela gestão global dos dados. A pasta \texttt{navigation} contém a configuração das rotas e separadores da aplicação. A pasta \texttt{lib} contém funções auxiliares e a configuração do Supabase. O ficheiro \texttt{types.ts} define os principais tipos de dados usados no projeto.
O estado global da aplicação é gerido através do \texttt{AppContext}. Este contexto guarda informação como utilizador autenticado, barbearias, carrinho, favoritos, marcações, pedidos, lista de espera e notificações. Também disponibiliza funções para login, registo, logout, criação de marcações, gestão de pedidos, serviços, produtos, barbeiros, avaliações e notificações.
O Supabase é utilizado como base de dados, autenticação e armazenamento. A aplicação consulta tabelas como \texttt{profiles}, \texttt{shops}, \texttt{services}, \texttt{barbers}, \texttt{products}, \texttt{appointments}, \texttt{orders}, \texttt{reviews}, \texttt{notifications} e \texttt{waitlist}. Esta estrutura permite guardar os dados de forma centralizada e atualizar a informação apresentada na aplicação.
\subsection{Manual de Funcionamento}
Para utilizar o \appname, o utilizador deve começar por criar uma conta ou iniciar sessão. Durante o registo, pode escolher entre uma conta de cliente ou uma conta de barbearia. Esta escolha define a área da aplicação que será apresentada após o login.
Se o utilizador for cliente, tem acesso à área de exploração. Nesta área pode pesquisar barbearias por nome, morada ou serviço. Também pode utilizar filtros para encontrar barbearias com melhor avaliação, mais serviços ou categorias específicas. Ao selecionar uma barbearia, o cliente pode consultar os seus detalhes, incluindo serviços, barbeiros, produtos, contactos, horários e avaliação.
Para efetuar uma marcação, o cliente escolhe uma barbearia, seleciona um serviço, escolhe um barbeiro, define a data e o horário pretendido e confirma a marcação. A marcação fica registada com o estado inicial pendente. Posteriormente, a barbearia pode confirmar, concluir ou cancelar essa marcação.
O cliente também pode adicionar produtos ao carrinho. Depois de escolher os produtos, pode finalizar o pedido, que fica associado à barbearia correspondente. Além disso, pode consultar o perfil, favoritos, histórico de marcações, pedidos e notificações.
Se o utilizador for barbearia, tem acesso ao dashboard. Neste painel, pode consultar as marcações por data, alterar o estado das marcações, gerir serviços, gerir produtos, gerir barbeiros e editar as informações do estabelecimento. A barbearia pode também definir contactos, redes sociais, métodos de pagamento, horários e imagens.
O funcionamento da aplicação foi pensado para ser simples. O cliente encontra rapidamente o serviço que pretende e a barbearia consegue gerir as principais informações do negócio através de uma interface organizada por separadores.
\subsection{Implementação do Projeto}
A implementação do projeto começou pela criação da estrutura base da aplicação em React Native com Expo. De seguida, foram criados os ecrãs principais e os componentes reutilizáveis. A navegação foi implementada com React Navigation, utilizando uma estrutura diferente para clientes e barbearias.
Na área de autenticação, foi implementado o registo e login através do Supabase. Depois do login, a aplicação consulta o perfil do utilizador e identifica o seu papel. Se o utilizador for cliente, é encaminhado para os separadores de explorar, carrinho e perfil. Se for barbearia, é encaminhado para o painel de gestão.
Na área do cliente, foram implementadas funcionalidades de pesquisa, filtros, consulta de detalhes da barbearia, criação de marcações, carrinho de produtos, favoritos, perfil e notificações. Estas funcionalidades comunicam com o estado global e com a base de dados para apresentar e guardar a informação correta.
Na área da barbearia, foi implementado o dashboard com separadores para agenda, serviços, produtos, equipa e definições. A barbearia pode criar e apagar serviços, adicionar produtos, controlar stock, gerir barbeiros, alterar estados de marcações e atualizar dados do estabelecimento.
Também foram implementadas funcionalidades adicionais, como avaliações, lista de espera e notificações. Quando uma marcação é cancelada, a aplicação pode avisar utilizadores que estejam na lista de espera para aquele barbeiro e data. O projeto inclui ainda funções Supabase preparadas para envio de notificações push e lembretes de agendamentos.
Durante a implementação, uma das partes mais importantes foi garantir que os dados fossem atualizados corretamente depois de cada ação. Para isso, a aplicação utiliza funções de atualização que recarregam as informações do Supabase e mantêm o estado global sincronizado.
\section{Conclusões}
O desenvolvimento do \appname{} permitiu criar uma aplicação funcional para a gestão de agendamentos em barbearias. O projeto cumpriu o objetivo principal de apresentar uma solução digital capaz de ajudar clientes a fazer marcações e barbearias a gerir o seu funcionamento diário.
A aplicação permite pesquisar barbearias, consultar detalhes, escolher serviços, selecionar barbeiros, criar marcações, adicionar produtos ao carrinho, gerir pedidos, guardar favoritos e consultar notificações. Para as barbearias, permite gerir agenda, serviços, produtos, barbeiros, horários, contactos, redes sociais, métodos de pagamento e imagens.
Do ponto de vista técnico, o projeto foi importante para consolidar conhecimentos de desenvolvimento mobile, React Native, Expo, TypeScript, React Navigation, Supabase, autenticação, base de dados, armazenamento e gestão de estado. A utilização destas tecnologias tornou o projeto mais completo e aproximou-o de uma solução real.
Conclui-se que o \appname{} é uma aplicação útil, organizada e com potencial de evolução. Para além de responder a uma necessidade real, o projeto contribuiu para o meu desenvolvimento académico e pessoal, permitindo-me aplicar conhecimentos, enfrentar dificuldades e melhorar as minhas capacidades técnicas.
\subsection{Limitações do Trabalho}
Apesar de o \appname{} apresentar várias funcionalidades, existem algumas limitações que devem ser consideradas. Uma das limitações é o facto de a aplicação ainda não incluir pagamentos online. Esta funcionalidade poderia ser útil para permitir pagamentos antecipados, reservas com sinal ou compra direta de produtos.
Outra limitação está relacionada com as notificações. Embora o projeto tenha suporte para notificações e lembretes, esta área poderia ser melhorada com avisos mais completos, como confirmações automáticas, lembretes por email ou SMS e mensagens personalizadas para os clientes.
A aplicação também poderia ter estatísticas mais avançadas para as barbearias. No futuro, seria útil apresentar dados sobre faturação, serviços mais pedidos, produtos mais vendidos, horários com maior procura e desempenho dos barbeiros.
Outra limitação é a ausência de publicação oficial nas lojas de aplicações. Para que o \appname{} pudesse ser usado por um público real, seria necessário preparar melhor a aplicação, reforçar a segurança, realizar mais testes e publicar na Play Store e na App Store.
Apesar destas limitações, o projeto cumpre os seus objetivos principais e apresenta uma base sólida para futuras melhorias.
\subsection{Apreciação Final}
O desenvolvimento do \appname{} foi uma experiência muito importante e enriquecedora para mim. Ao longo deste projeto, tive a oportunidade de aplicar vários conhecimentos adquiridos durante o meu percurso académico e compreender melhor como se desenvolve uma aplicação funcional.
Durante o trabalho, percebi que criar uma aplicação não consiste apenas em escrever código. É necessário planear, organizar ideias, pensar nos utilizadores, estruturar os ecrãs, definir funcionalidades, ligar a aplicação a uma base de dados e testar o funcionamento. Cada uma destas etapas foi importante para chegar ao resultado final.
Encontrei algumas dificuldades, principalmente na integração com o Supabase, na gestão do estado global da aplicação, na separação entre cliente e barbearia e na organização da interface. No entanto, essas dificuldades ajudaram-me a evoluir, a pesquisar soluções e a melhorar a minha autonomia.
Considero que este projeto foi importante para o meu crescimento pessoal e académico. Ajudou-me a desenvolver responsabilidade, persistência, organização e capacidade de resolução de problemas. Também me permitiu perceber a importância de criar soluções úteis e adaptadas a necessidades reais.
Fico satisfeito com o resultado final, porque consegui desenvolver uma aplicação com funcionalidades reais e com potencial para ser melhorada no futuro. O \appname{} pode ajudar clientes a fazer marcações de forma mais simples e pode ajudar barbearias a gerir melhor o seu dia a dia. No futuro, gostaria de ver a aplicação evoluir com pagamentos online, notificações mais avançadas, estatísticas completas e publicação nas lojas de aplicações.
\newpage
\section*{Webgrafia}
Para o desenvolvimento do projeto e para a realização deste relatório, foram consultadas fontes relacionadas com as tecnologias utilizadas:
\begin{itemize}
\item Documentação oficial do React Native: \url{https://reactnative.dev/}
\item Documentação oficial do Expo: \url{https://docs.expo.dev/}
\item Documentação oficial do TypeScript: \url{https://www.typescriptlang.org/docs/}
\item Documentação oficial do React Navigation: \url{https://reactnavigation.org/docs/getting-started}
\item Documentação oficial do Supabase: \url{https://supabase.com/docs}
\item Documentação oficial do AsyncStorage: \url{https://react-native-async-storage.github.io/async-storage/}
\end{itemize}
\newpage
\section*{Anexos}
Nesta secção podem ser inseridas imagens da aplicação, capturas de ecrã dos principais menus, esquemas da base de dados ou outros elementos de apoio à apresentação do projeto.
Como anexos recomendados para o \appname, podem ser incluídos:
\begin{itemize}
\item Ecrã de login e registo.
\item Ecrã de exploração de barbearias.
\item Página de detalhes da barbearia.
\item Ecrã de marcação de serviço.
\item Carrinho de produtos.
\item Perfil do cliente.
\item Dashboard da barbearia.
\item Gestão de serviços, produtos e barbeiros.
\item Estrutura da base de dados no Supabase.
\end{itemize}
\end{document}