Essa aplicação web fullstack foi desenvolvida para que mestres de RPG de mesa, tanto do Pathfinder quanto D&D 5E, possam gerenciar de forma prática as experiências e níveis de cada personagem em suas campanhas narradas. É possivel também gerar uma tabela com nome dos personagens, sua experiência total, ultima experiência e nível, que pode ser baixada como imagem para que o mestre possa compartilhar em seus grupos.
Caso tenha interesse, pode visualizar a aplicação rodando em: https://xpmanager.vercel.app/
Next
Typescript
Axios
Styled-components
React-icons
Radix-ui
React-toastify
Zod
Nookies
Next-auth
Next-seo
googleapi
Prisma
Dayjs
Downloadjs
Html2canvas
MySQL
Primeiro, baixe em um diretório ou clone esse repositório utilizando:
git clone [email protected]:victorcbb/XP-Manager.git
instale as dependências com:
npm i
Agora será necessário instalar o Docker para que possa ser criado um banco de dados Mysql. As estratégias de instalação variam de acordo com o sistema operacional da sua maquina. Caso seja necessário, siga o passo a passo direto da documentação do Docker:
Com o Docker instalado, vamos criar um container com o banco de dados Mysql através da CLI:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=docker -p 3306:3306 mysql:latest
Você pode utilizar a interface gráfica do Docker para iniciar e parar o container do banco de dados ou usar as respectivas CLI:
docker start mysql
docker stop mysql
Com as mesmas credênciais utilizadas para criar o banco de dados no passo anterior, acesse o arquivo .env.example
e modifique o DATABASE_URL
. Aproveite para renomar o arquivo para .env
.
Para criar as tabelas no banco de dados use o comando:
npx prisma migrate dev
Por fim, rode o servidor de desenvolvimento com:
npm run dev
POST
:
/users/
GET
:
/users/campaigns/:name
POST
:
/campaign/new-campaign/
PUT
:
/campaign/update-description/
DELETE
:
/campaign/delete-campaign/:campaignId
PATCH
:
/ingredients/image/:id
POST
:
/character/new/
GET
:
/character/find-characters/:campaignid
GET
:
/character/experience/:characterid
DELETE
:
/character/delete-character/:characterid
POST
:
/experience
DELETE
:
/experience/delete/:experienceId