https://github.com/arawns1/ncard
Desafio NCard - API, Mobile e Web
https://github.com/arawns1/ncard
docker expo figma github-ac jwt lombok native-base neon nfc react react-hook-form react-native render shadcn-ui spring-boot tailwindcss vercel vite yup
Last synced: 3 months ago
JSON representation
Desafio NCard - API, Mobile e Web
- Host: GitHub
- URL: https://github.com/arawns1/ncard
- Owner: Arawns1
- License: mit
- Created: 2024-01-18T13:22:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-11T22:56:53.000Z (over 1 year ago)
- Last Synced: 2025-03-25T11:14:49.301Z (about 1 year ago)
- Topics: docker, expo, figma, github-ac, jwt, lombok, native-base, neon, nfc, react, react-hook-form, react-native, render, shadcn-ui, spring-boot, tailwindcss, vercel, vite, yup
- Language: TypeScript
- Homepage: https://neki-card.vercel.app/
- Size: 2.43 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Projeto NCard







Aplicativo e site para comunicação entre funcionários utilzando o NCard
# 🛠 Tecnologias Utilizadas
- React
- React Native
- Expo
- Spring Boot (Java 20)
- Tailwind css
- Shadcn/ui
- TypeScript
- Native Base
- React Hook Form
- Yup
- Spring Security
- Tokens JWT
- Lombok
- Docker
- Github Actions
- Neon DB
- Figma
# 🎯 Objetivo Principal
O principal objetivo deste projto foi a criação de um site, aplicativo e API completa durante uma semana para a facilitar a comunicação dos colaboradores; Além disso foi implentado um fluxo de CI/CD Utilizando Docker, Github Actions, Render, Neon DB e Vercel.
## 📄 Documentação e casos de Uso
[Link para a documentação](https://github.com/Arawns1/NekiCard/tree/main/docs)
## 🎲 Modelagem do Banco de Dados
```mermaid
classDiagram
class User {
<>
- USER_CD_ID: UUID
- USER_BOOL_STATUS: boolean
- USER_TX_NAME: String
- USER_TX_EMAIL: String
- USER_TX_PASSWORD: String
- USER_DT_BIRTHDATE: LocalDate
- USER_TX_LOCALITY: String
- USER_TX_DESCRIPTION: String
- USER_TX_WORKTIME: LocalDate
- USER_TX_WORKFUNCTION: String
- USER_TX_SOCIALNAME: String
- USER_TX_PHONE: String
- USER_TX_PROFILE_PHOTO_URL: String
- CREATED_AT: LocalDateTime
- UPDATED_AT: LocalDateTime
- USER_TX_ROLE: UserRole
+ updateInfos(dto: UpdateUserDTO): User
+ excluir(): void
}
class Card {
<>
- CARD_CD_ID: UUID
- CARD_BOOL_STATUS: boolean
- CARD_CD_NFC_ID: String
- CARD_TX_TYPE: CardType
- CARD_TX_QRCODE_URL: String
+ excluir(): void
}
class SocialMedia {
<>
- SOME_CD_ID: UUID
- SOME_BOOL_STATUS: boolean
- SOME_TX_NAME: SocialMediaNames
- SOME_TX_URL: String
+ update(dto: SaveSocialMediaDTO): void
+ excluir(): void
}
class UserPhoto {
<>
- USER_CD_ID: UUID
- USPH_BL_PHOTO: byte[]
- USPH_TX_TYPE: String
- USPH_TX_SIZE: Long
}
class UserRole {
<>
- ROLE: String
}
class CardType {
<>
- TYPE: String
}
class SocialMediaNames {
<>
- NAME: String
}
User --|> Card
User --|> SocialMedia
User --o UserPhoto
UserRole --o User
CardType --o Card
SocialMediaNames --o SocialMedia
```
# 📸 Visuais e Telas
🎨 [Link para o figma](https://www.figma.com/file/Uh49GkN8efqS4LLaptQOgB/Testes?type=design&node-id=1%3A3&mode=design&t=u1a0WA6YX6nzMndj-1)
## 💻 Como Rodar?
1. Clone o repositório
```bash
git clone https://github.com/Arawns1/NekiCard.git
```
2. Utilize o docker compose para subir a instancia de Banco de dados e API
```bash
docker-compose up -d
```
3. Entre no diretório e rode
```bash
npm install
```
4. Altere o arquivo .ENV para o url de sua API para ```http://localhost:8082/```
5. WEB - Rode o projeto. Abrirá em http://localhost:5173/
```bash
npm run dev
```
5. MOBILE - Rode o projeto. E necessário rodar com um dispositivo conectado pois utiliza NFC
```
npm run android
```
Por padrão o projeto web possui apenas a rota /user/{userId} que busca os dados do usuário