Skip to content

Encurtador de links colaborativo criado pela comunidade DEV Juniano. πŸš€ Transforme links longos em conexΓ΅es rΓ‘pidas. O encurtador oficial da galera DEV.

License

Notifications You must be signed in to change notification settings

JrValerio/linkando.dev

🌐 Linkando.dev

Projeto Fullstack de encurtamento de URLs com autenticaΓ§Γ£o OAuth, dashboard personalizada, proteΓ§Γ£o de links por senha e mΓ©tricas de acesso. Desenvolvido com foco em escalabilidade, seguranΓ§a e UX moderna.


πŸš€ Tecnologias Utilizadas

Frontend

  • Next.js 15 (App Router)
  • TypeScript + TailwindCSS
  • NextAuth.js (Google e GitHub OAuth)
  • Axios + Hooks personalizados
  • Controllers e Views separadas

Backend

  • Node.js + Express
  • MongoDB + Mongoose
  • JWT + Refresh Token
  • Middleware de proteΓ§Γ£o de rotas
  • ModularizaΓ§Γ£o completa (routes, services, controllers)

πŸ“ Estrutura de Pastas

πŸ“¦ linkando-frontend/

linkando-frontend/
β”œβ”€β”€ .env.example
β”œβ”€β”€ README.md
β”œβ”€β”€ public/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ page.tsx
β”‚   β”‚   β”œβ”€β”€ dashboard/page.tsx
β”‚   β”‚   β”œβ”€β”€ verify-password/page.tsx
β”‚   β”‚   β”œβ”€β”€ [slug]/page.tsx
β”‚   β”‚   β”œβ”€β”€ admin/page.tsx
β”‚   β”‚   └── encurtar/page.tsx
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   └── DashboardController.ts
β”‚   β”œβ”€β”€ views/
β”‚   β”‚   └── DashboardView.tsx
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── api.ts
β”‚   β”œβ”€β”€ types/
β”‚   β”‚   └── index.ts
β”‚   β”œβ”€β”€ styles/
β”‚   β”‚   └── globals.css
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ next.config.ts
β”œβ”€β”€ postcss.config.mjs
β”œβ”€β”€ eslint.config.mjs

πŸ› οΈ linkando-backend/

linkando-backend/
β”œβ”€β”€ .env.example
β”œβ”€β”€ README.md
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ services/
β”‚   └── middlewares/
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ package.json
β”œβ”€β”€ .gitignore
β”œβ”€β”€ setup-oauth.js

πŸ” Funcionalidades

Funcionalidade Status
Login com Google/GitHub βœ… Implementado
Refresh Token βœ… Com cookies seguros
Encurtar links βœ… Pronto para uso
PersonalizaΓ§Γ£o de slug βœ… Slug manual ou automΓ‘tico
ProteΓ§Γ£o por senha βœ… Link acessado sΓ³ apΓ³s senha
Dashboard com links criados βœ… Visual e funcional
ExpiraΓ§Γ£o de links βœ… Por data definida
MΓ©tricas de acesso βœ… IP, navegador e tempo
Painel admin βœ… Listagem de usuΓ‘rios

βš™οΈ InstalaΓ§Γ£o

# Clonar o projeto
$ git clone https://github.com/JrValerio/linkando.dev

# FRONTEND
$ cd linkando-frontend
$ npm install
$ npm run dev

# BACKEND
$ cd ../linkando-backend
$ npm install
$ npm run dev

πŸ“„ VariΓ‘veis de Ambiente (.env)

# MongoDB
MONGO_URI=mongodb://localhost:27017/linkando
JWT_SECRET=suasecretachave

# OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
NEXTAUTH_SECRET=qualquercofasegura

πŸ“Έ Screenshots

(inserir imagens da Dashboard, pΓ‘gina de encurtamento e login com dark mode)


πŸ™‹β€β™‚οΈ Contribuindo


πŸ‘¨β€πŸ’» Autor

Projeto desenvolvido por Amaro JΓΊnior (@JrValerio) e colaboradores.

Encurte links. Expanda possibilidades. πŸš€

About

Encurtador de links colaborativo criado pela comunidade DEV Juniano. πŸš€ Transforme links longos em conexΓ΅es rΓ‘pidas. O encurtador oficial da galera DEV.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •