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.
- Next.js 15 (App Router)
- TypeScript + TailwindCSS
- NextAuth.js (Google e GitHub OAuth)
- Axios + Hooks personalizados
- Controllers e Views separadas
- Node.js + Express
- MongoDB + Mongoose
- JWT + Refresh Token
- Middleware de proteΓ§Γ£o de rotas
- ModularizaΓ§Γ£o completa (routes, services, controllers)
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/
βββ .env.example
βββ README.md
βββ src/
β βββ index.ts
β βββ routes/
β βββ controllers/
β βββ models/
β βββ services/
β βββ middlewares/
βββ tsconfig.json
βββ package.json
βββ .gitignore
βββ setup-oauth.js
| 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 |
# 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# 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(inserir imagens da Dashboard, pΓ‘gina de encurtamento e login com dark mode)
- Leia o arquivo CONTRIBUTING.md
- CΓ³digo de conduta disponΓvel em CODE_OF_CONDUCT.md
Projeto desenvolvido por Amaro JΓΊnior (@JrValerio) e colaboradores.
Encurte links. Expanda possibilidades. π