NLW Spacetime é uma aplicação de recordação de memórias, onde o nosso usuário poderá adicionar à uma timeline textos, fotos e vídeos de acontecimentos marcantes da sua vida, organizados por mês e ano.
-
TODO
-
[] Adicionar na Fetch Recent Memories DTO -> userId e também no Memory Repository
-
[] Adicionar na Create Memory DTO -> userId
-
[] Listar uma memoria especifica, só pode mostrar a memoria do usuário e não de outro usuário. Mas se a memoria estiver "publica" pode ser acessada por outro usuário
Embreve
Este projeto foi desenvolvido durante a semana da NLW, evento feito pela Rocketseat, que ocorreu em maio de 2023.
O projeto foi desenvolvido com as seguintes tecnologias:
- TypeScript - TypeScript extends JavaScript by adding types to the language.
- React - A JavaScript library for building user interfaces
- tailwindcss - Rapidly build modern websites without ever leaving your HTML.
- Expo - Build one project that runs natively on all your users' devices
- Node.js - A JavaScript runtime built on Chrome's V8 JavaScript engine.
- Vitest - A Vite-native unit test framework. It's fast!
- PostgreSQL - The World's Most Advanced Open Source Relational Database
- PrismaORM - Next-generation Node.js and TypeScript ORM
- Docker - Develop faster. Run anywhere.
Embreve
Essas instruções permitirão que você obtenha uma cópia do projeto em operação na sua máquina local para fins de desenvolvimento e teste.
- Node.js - Para rodar este projeto é necessário ter Node.js instalado em sua maquina. Caso não tenha ainda basta acessar o site do Node.js e instalar para continuar.
- Docker
O projeto pode ser executado com Docker, para isso você deve ter ele em sua maquina local para executar o projeto e caso você queria instalar o Docker para Ubuntu/Windows vou deixar dois links abaixo;
- https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04
- https://docs.docker.com/desktop/windows/install/
- Clone este repositório
git clone https://github.com/alnmaurofranco/nlw-spacetime
- Acesse a pasta do projeto
cd nlw-spacetime
- Instale as dependências de cada projeto com (pnpm, yarn ou npm) nesse exemplo estou usando yarn e vou primeiramente executar na pasta web
- ⚠ IMPORTANTE! Faça isso também para as outras pastas (server e mobile)
cd web && yarn install
- Após a instalação, você deve renomear o arquivo
.env.example
para.env
que se encontra nas raizes dos projetos e modifique a variavel de acordo com a sua configuração.
- Após completa todas as instalações, vamos iniciar nossa aplicaçaõ web com o seguinte comando:
cd web && yarn dev
- Pronto, agora sua aplicação web está rodando e já pode ser acessada em: http://localhost:5411
- Após a instalação das dependecias, você deve renomear o arquivo
.env.example
para.env
que se encontra na raiz do projeto e modifique a variavel DATABASE_URL com suas configurações do seu banco de dados:
DATABASE_URL="postgresql://USER:PASS@HOST:PORT/DATABASE?schema=public"
- Inicie a API com o comando:
yarn start:dev
- Pronto agora sua aplicação backend (server) está rodando e já pode ser acessado em
http://localhost:3333/api
- Subindo o container do projeto no Docker utilizando o comando abaixo:
docker-compose up -d
- E depois de subir o container, você deve renomear o arquivo
.env.example
para.env
que se encontra na raiz do projeto e modificar a variavel DATABASE_URL com as configurações abaixo:
DATABASE_URL="postgresql://root:docker@api-database:5432/spacetimedb?schema=public"
-
Pronto agora sua aplicação backend (server) está rodando no Docker e já pode ser acessado em
http://localhost:3333/api
-
O comando a seguir é para a execução do projeto mobile:
cd mobile && yarn start
- Pronto agora sua aplicação mobile está disponível para ser acessada
A seguir iremos executar os testes da aplicação no backend (server)
cd server && yarn test
- Pronto, teste da aplicação do seu backend (server) foi realizado.
Embreve