Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igoraugust0/time-capsule
⏳ Aplicação de recordação de memórias por meio de fotos e vídeos, desenvolvida durante evento NLW Spacetime da Rocketseat
https://github.com/igoraugust0/time-capsule
axios expo fastify jwt nextjs nodejs oauth postgresql prisma react react-native supabase tailwindcss typescript zod
Last synced: 1 day ago
JSON representation
⏳ Aplicação de recordação de memórias por meio de fotos e vídeos, desenvolvida durante evento NLW Spacetime da Rocketseat
- Host: GitHub
- URL: https://github.com/igoraugust0/time-capsule
- Owner: IgorAugust0
- License: mit
- Created: 2023-05-16T18:45:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-12T14:49:32.000Z (over 1 year ago)
- Last Synced: 2025-01-20T05:49:30.243Z (1 day ago)
- Topics: axios, expo, fastify, jwt, nextjs, nodejs, oauth, postgresql, prisma, react, react-native, supabase, tailwindcss, typescript, zod
- Language: TypeScript
- Homepage:
- Size: 30.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NLW Spacetime - Cápsula do Tempo
Cápsula do Tempo é uma aplicação full-stack, do back-end ao mobile, que funciona como uma cápsula do tempo guardando memórias passadas numa timeline, utilizando React, Tailwind, Node, Fastify, TypeScript, Expo, Next.js e muito mais.
ℹ️ Como Executar? |
🚀 Tecnologias |
🎨 Layout |
💻 Autores |
📝 Licença![cover](https://raw.githubusercontent.com/IgorAugust0/IgorAugust0.github.io/main/assets/nlw/spacetime/cover.png)
> 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.
# :information_source: Como Executar?
## Clonar o Repositório
```bash
git clone https://github.com/IgorAugust0/nlw-spacetime
```## :desktop_computer: Server
```bash
# Acesse a pasta do servidor
cd server# Instale as dependências
npm install# Configure as variáveis de ambiente
cp .env.example .env# Preencha as variáveis no arquivo .env, deve-se criar dois
# conjuntos de variáveis, um para o web e outro para o mobile
# GITHUB_CLIENT_ID=""
# GITHUB_CLIENT_SECRET=""# Execute o Prisma para criar as tabelas
npx prisma migrate dev# Inicie o servidor
npm dev
```## :globe_with_meridians: Web
```bash
# Com o servidor iniciado, acesse a pasta do projeto Web
cd ../web# Instale as dependências
npm install# Configure a variável de ambiente
cp .env.example .env.local# Preencha a variável no arquivo .env
# NEXT_PUBLIC_GITHUB_CLIENT_ID=# Inicie o projeto Web
npm dev
```## :iphone: Mobile
```bash
# Com o servidor iniciado, acesse a pasta do projeto Mobile
cd ../mobile# Instale as dependências
npm install# Inicie o projeto Mobile (ios está disponível apenas em máquinas com MacOS,
# porém é possível escanear o QR Code com um dispositivo físico iOS)
npx expo start# Acesse o aplicativo Expo no seu celular e escaneie o QR Code
```> ➡️ Acesse [http://localhost:3000](http://localhost:3000) para acessar a aplicação web.
# :rocket: Tecnologias
| Front-End Web | Mobile | Back-End |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [![Typescript Badge](https://img.shields.io/badge/Typescript-3178C6.svg?style=for-the-badge&logo=Typescript&logoColor=white)](https://www.typescriptlang.org/) | [![React Native Badge](https://img.shields.io/badge/React%20Native-61DAFB.svg?style=for-the-badge&logo=React&logoColor=white)](https://reactnative.dev/) | [![Node.js Badge](https://img.shields.io/badge/Node.js-339933.svg?style=for-the-badge&logo=Node.js&logoColor=white)](https://nodejs.org/) |
| [![Next.js Badge](https://img.shields.io/badge/Next.js-000000.svg?style=for-the-badge&logo=Next.js&logoColor=white)](https://nextjs.org/) | [![Safe Area Context Badge](https://img.shields.io/badge/Safe%20Area%20Context-000000.svg?style=for-the-badge&logo=React&logoColor=white)](https://reactnavigation.org/docs/getting-started) | [![Typescript Badge](https://img.shields.io/badge/Typescript-3178C6.svg?style=for-the-badge&logo=Typescript&logoColor=white)](https://www.typescriptlang.org/) |
| [![Tailwind CSS Badge](https://img.shields.io/badge/Tailwind%20CSS-38B2AC.svg?style=for-the-badge&logo=Tailwind%20CSS&logoColor=white)](https://tailwindcss.com/) | [![React Native Screens Badge](https://img.shields.io/badge/React%20Native%20Screens-000000.svg?style=for-the-badge&logo=React&logoColor=white)](https://github.com/wix/react-native-navigation) | [![Prisma Badge](https://img.shields.io/badge/Prisma-2D3748.svg?style=for-the-badge&logo=Prisma&logoColor=white)](https://www.prisma.io/) |
| [![Autoprefixer Badge](https://img.shields.io/badge/Autoprefixer-000000.svg?style=for-the-badge&logo=Autoprefixer&logoColor=white)](https://autoprefixer.github.io/) | [![React Native SVG Badge](https://img.shields.io/badge/React%20Native%20SVG-00D8FF.svg?style=for-the-badge&logo=React&logoColor=white)](https://github.com/software-mansion/react-native-svg) | [![Supabase Badge](https://img.shields.io/badge/Supabase-24b47e.svg?style=for-the-badge&logo=Supabase&logoColor=white)](https://supabase.com/) |
| [![PostCSS Badge](https://img.shields.io/badge/PostCSS-DD3A0A.svg?style=for-the-badge&logo=PostCSS&logoColor=white)](https://postcss.org/) | [![Typescript Badge](https://img.shields.io/badge/Typescript-3178C6.svg?style=for-the-badge&logo=Typescript&logoColor=white)](https://www.typescriptlang.org/) | [![Zod Badge](https://img.shields.io/badge/Zod-E5A00D.svg?style=for-the-badge&logo=Zod&logoColor=white)](https://github.com/colinhacks/zod) |
| [![Lucide React Badge](https://img.shields.io/badge/Lucide%20React-000000.svg?style=for-the-badge&logo=React&logoColor=white)](https://github.com/lucide-icons/lucide) | [![Expo Badge](https://img.shields.io/badge/Expo-000020.svg?style=for-the-badge&logo=Expo&logoColor=white)](https://expo.dev/) | [![Fastify Badge](https://img.shields.io/badge/Fastify-000000.svg?style=for-the-badge&logo=Fastify&logoColor=white)](https://www.fastify.dev/) |
| [![Axios Badge](https://img.shields.io/badge/Axios-007ACC.svg?style=for-the-badge&logo=Axios&logoColor=white)](https://axios-http.com/) | [![Expo Image Picker Badge](https://img.shields.io/badge/Expo%20Image%20Picker-4630EB.svg?style=for-the-badge&logo=Expo&logoColor=white)](https://docs.expo.dev/versions/latest/sdk/imagepicker/) | [![Dotenv Badge](https://img.shields.io/badge/Dotenv-007A82.svg?style=for-the-badge&logo=Dotenv&logoColor=white)](https://github.com/motdotla/dotenv) |
| [![ESLint Badge](https://img.shields.io/badge/ESLint-4B32C3.svg?style=for-the-badge&logo=ESLint&logoColor=white)](https://eslint.org/) | [![Expo Auth Session Badge](https://img.shields.io/badge/Expo%20Auth%20Session-4E3FB1.svg?style=for-the-badge&logo=Expo&logoColor=white)](https://docs.expo.dev/versions/latest/sdk/auth-session/) | [![ESLint Badge](https://img.shields.io/badge/ESLint-4B32C3.svg?style=for-the-badge&logo=ESLint&logoColor=white)](https://eslint.org/) |
| [![js-cookie Badge](https://img.shields.io/badge/js--cookie-FF9800.svg?style=for-the-badge&logo=javascript&logoColor=white)](https://github.com/js-cookie/js-cookie) | [![Expo Constants Badge](https://img.shields.io/badge/Expo%20Constants-FFD700.svg?style=for-the-badge&logo=Expo&logoColor=black)](https://docs.expo.dev/versions/latest/sdk/constants/) | [![Fastify CORS Badge](https://img.shields.io/badge/Fastify%20CORS-FF6B00.svg?style=for-the-badge&logo=Fastify&logoColor=white)](https://github.com/fastify/fastify-cors) |
| [![jwt-decode Badge](https://img.shields.io/badge/jwt--decode-000000.svg?style=for-the-badge&logo=JSON%20Web%20Tokens&logoColor=white)](https://github.com/auth0/jwt-decode) | [![Expo Crypto Badge](https://img.shields.io/badge/Expo%20Crypto-4B0082.svg?style=for-the-badge&logo=Expo&logoColor=white)](https://docs.expo.dev/versions/latest/sdk/crypto/) | [![Fastify JWT Badge](https://img.shields.io/badge/Fastify%20JWT-007A82.svg?style=for-the-badge&logo=Fastify&logoColor=white)](https://github.com/fastify/fastify-jwt) |# :art: Layout
### :globe_with_meridians: Layout Desktop
## ![web](https://raw.githubusercontent.com/IgorAugust0/IgorAugust0.github.io/main/assets/nlw/spacetime/web.png)
### :iphone: Layout Mobile
![mobile](https://raw.githubusercontent.com/IgorAugust0/IgorAugust0.github.io/main/assets/nlw/spacetime/mobile.png)
# :hammer_and_wrench: To-Do
- [ ] Edição de memória (página de detalhe da memória)
- [ ] Link para compartilhar memória
- [ ] Selecionar data da memória (com DateTimePicker)
- [ ] Layout responsivo# :computer: Autores
Igor Augusto
@igoraugusto 💻
Rocketseat
@rocketseat 🚀
# :memo: Licença
Este projeto está licenciado sob a licença MIT - veja o arquivo de [licença](./LICENSE) para mais detalhes.