https://github.com/alnmaurofranco/nlw-spacetime
NLW Spacetime
https://github.com/alnmaurofranco/nlw-spacetime
nextjs nodejs postgresql prisma reactjs tailwindcss typescript vitest
Last synced: 3 months ago
JSON representation
NLW Spacetime
- Host: GitHub
- URL: https://github.com/alnmaurofranco/nlw-spacetime
- Owner: alnmaurofranco
- Created: 2023-05-16T04:32:01.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-07T19:43:20.000Z (over 2 years ago)
- Last Synced: 2023-10-07T20:28:23.693Z (over 2 years ago)
- Topics: nextjs, nodejs, postgresql, prisma, reactjs, tailwindcss, typescript, vitest
- Language: TypeScript
- Homepage:
- Size: 5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

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
## ✅ Demostração
Embreve
## 🎉 Sobre o projeto
Este projeto foi desenvolvido durante a semana da NLW, evento feito pela Rocketseat, que ocorreu em maio de 2023.
## 🚀 Tecnologias
O projeto foi desenvolvido com as seguintes tecnologias:
* [TypeScript](https://typescriptlang.org) - TypeScript extends JavaScript by adding types to the language.
* [React](https://reactjs.org/) - A JavaScript library for building user interfaces
* [tailwindcss](https://tailwindcss.com/) - Rapidly build modern websites without ever leaving your HTML.
* [Expo](https://expo.dev/) - Build one project that runs natively on all your users' devices
* [Node.js](https://nodejs.org/en/) - A JavaScript runtime built on Chrome's V8 JavaScript engine.
* [Vitest](https://vitest.dev/) - A Vite-native unit test framework. It's fast!
* [PostgreSQL](https://www.postgresql.org/) - The World's Most Advanced Open Source Relational Database
* [PrismaORM](https://www.prisma.io/) - Next-generation Node.js and TypeScript ORM
* [Docker](https://www.docker.com/) - Develop faster. Run anywhere.

## ✨ Funcionalidades
Embreve
## 👨🏼💻 Como executar
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.
### 📃 *Pre-requisitos*
- **Node.js** - Para rodar este projeto é necessário ter [Node.js](https://nodejs.org/) instalado em sua maquina. Caso não tenha ainda basta acessar o site do [Node.js](https://nodejs.org/) 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/
### 🔧 *Instalação*
- Clone este repositório
```bash
git clone https://github.com/alnmaurofranco/nlw-spacetime
```
- Acesse a pasta do projeto
```bash
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)**
```bash
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.
### *Executando a aplicaçã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
#### **🔥 Sem Docker no backend (SERVER)**
- 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:
```bash
DATABASE_URL="postgresql://USER:PASS@HOST:PORT/DATABASE?schema=public"
```
- Inicie a API com o comando:
```bash
yarn start:dev
```
- **Pronto agora sua aplicação backend (server) está rodando e já pode ser acessado em** [`http://localhost:3333/api`](http://localhost:3333/api)
#### **🐳 Com Docker no backend (SERVER)**
- Subindo o container do projeto no Docker utilizando o comando abaixo:
```bash
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:
```bash
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`](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
### 🧪 *Executando os testes*
A seguir iremos executar os testes da aplicação no backend (server)
```bash
cd server && yarn test
```
- *Pronto, teste da aplicação do seu **backend (server)** foi realizado.*
## 🪄 Melhorias em desenvolvimento
Embreve
---
*Feito com 💚 by [AlanM Franco](https://github.com/alnmaurofranco)*