Compare commits

..

No commits in common. "48dc841b948acb1341eef97dd8480415a30944ff" and "10663c4528505965d04aa8ad2cae5f83711ffa9c" have entirely different histories.

5 changed files with 163 additions and 276 deletions

View File

@ -1,156 +0,0 @@
import Link from "next/link"
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
import { Calendar, Clock, User, Shield, Stethoscope, Receipt, IdCard } from "lucide-react"
export default function HomePage() {
return (
<div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100">
<div className="container mx-auto px-4 py-16">
<div className="text-center mb-12">
<h1 className="text-4xl font-bold text-gray-900 mb-4">Sistema de Consultas Médicas</h1>
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
Gerencie suas consultas médicas de forma simples e eficiente
</p>
</div>
<div className="grid md:grid-cols-3 gap-8 max-w-6xl mx-auto">
<Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<CardHeader className="text-center flex-shrink-0">
<User className="w-12 h-12 text-black-600 mx-auto mb-4" />
<CardTitle>Área do Paciente</CardTitle>
<CardDescription>Acesse sua área pessoal para agendar consultas e gerenciar seus dados</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Agendar consultas</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Ver histórico de consultas</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Gerenciar dados pessoais</span>
</div>
</div>
<Link href="/patient/login" className="block mt-auto">
<Button className="w-full">Entrar como Paciente</Button>
</Link>
</CardContent>
</Card>
<Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<CardHeader className="text-center flex-shrink-0">
<Shield className="w-12 h-12 text-purple-600 mx-auto mb-4" />
<CardTitle>Área da Secretária</CardTitle>
<CardDescription>Gerencie consultas, pacientes e agenda médica</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Gerenciar consultas</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Cadastrar pacientes</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Controlar agenda</span>
</div>
</div>
<Link href="/secretary/login" className="block mt-auto">
<Button className="w-full bg-purple-600 hover:bg-purple-700">Entrar como Secretária</Button>
</Link>
</CardContent>
</Card>
<Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<CardHeader className="text-center flex-shrink-0">
<Stethoscope className="w-12 h-12 text-green-600 mx-auto mb-4" />
<CardTitle>Área Médica</CardTitle>
<CardDescription>Acesso restrito para profissionais de saúde</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Gerenciar agenda</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Ver pacientes</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Histórico de atendimentos</span>
</div>
</div>
<Link href="/doctor/login" className="block mt-auto">
<Button className="w-full bg-green-600 hover:bg-green-700">Entrar como Médico</Button>
</Link>
</CardContent>
</Card>
<Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<CardHeader className="text-center flex-shrink-0">
<IdCard className="w-12 h-12 text-blue-600 mx-auto mb-4" />
<CardTitle>Área do Gestor</CardTitle>
<CardDescription>Acesso restrito para gestores e coordenadores</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Relatórios gerenciais</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Configurações do sistema</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Gestão de usuários</span>
</div>
</div>
<Link href="#" className="block mt-auto">
<Button className="w-full bg-blue-600 hover:bg-blue-700">Entrar como Gestor</Button>
</Link>
</CardContent>
</Card>
<Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<CardHeader className="text-center flex-shrink-0">
<Receipt className="w-12 h-12 text-orange-600 mx-auto mb-4" />
<CardTitle>Área de Finanças</CardTitle>
<CardDescription>Acesso restrito para profissionais do setor financeiro</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Relatórios financeiros</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Faturamento</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Controle de pagamentos</span>
</div>
</div>
<Link href="#" className="block mt-auto">
<Button className="w-full bg-orange-600 hover:bg-orange-700">Entrar como Financeiro</Button>
</Link>
</CardContent>
</Card>
</div>
</div>
</div>
)
}

View File

@ -1,115 +1,156 @@
"use client";
import Link from "next/link" import Link from "next/link"
import { Button } from "@/components/ui/button" import { Button } from "@/components/ui/button"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
import { Calendar, Clock, User, Shield, Stethoscope, Receipt, IdCard } from "lucide-react"
export default function HomePage() {
export default function InicialPage() {
return ( return (
<div className="min-h-screen flex flex-col bg-gray-50"> <div className="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100">
{} <div className="container mx-auto px-4 py-16">
<div className="bg-black text-white text-sm py-2 px-6 flex justify-between"> <div className="text-center mb-12">
<span> Horário: 08h00 - 21h00</span> <h1 className="text-4xl font-bold text-gray-900 mb-4">Sistema de Consultas Médicas</h1>
<span> Email: contato@midconnecta.com</span> <p className="text-xl text-gray-600 max-w-2xl mx-auto">
Gerencie suas consultas médicas de forma simples e eficiente
</p>
</div> </div>
{} <div className="grid md:grid-cols-3 gap-8 max-w-6xl mx-auto">
<header className="bg-white shadow-md py-4 px-6 flex justify-between items-center"> <Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<h1 className="text-2xl font-bold text-blue-700">MidConnecta</h1> <CardHeader className="text-center flex-shrink-0">
<nav className="flex space-x-6 text-gray-700 font-medium"> <User className="w-12 h-12 text-black-600 mx-auto mb-4" />
<a href="#home" className="hover:text-blue-600">Home</a> <CardTitle>Área do Paciente</CardTitle>
<a href="#about" className="hover:text-blue-600">Sobre</a> <CardDescription>Acesse sua área pessoal para agendar consultas e gerenciar seus dados</CardDescription>
<a href="#departments" className="hover:text-blue-600">Departamentos</a> </CardHeader>
<a href="#doctors" className="hover:text-blue-600">Médicos</a> <CardContent className="space-y-4 flex-grow flex flex-col">
<a href="#contact" className="hover:text-blue-600">Contato</a> <div className="space-y-3 flex-grow">
</nav> <div className="flex items-center gap-2 text-sm text-gray-600">
<div className="flex space-x-4"> <Calendar className="w-4 h-4" />
{} <span>Agendar consultas</span>
<Link href="/cadastro"> </div>
<Button <div className="flex items-center gap-2 text-sm text-gray-600">
variant="outline" <Clock className="w-4 h-4" />
className="rounded-full px-6 py-2 border-2 border-blue-600 text-blue-600 hover:bg-blue-600 hover:text-white transition cursor-pointer" <span>Ver histórico de consultas</span>
> </div>
Login <div className="flex items-center gap-2 text-sm text-gray-600">
</Button> <User className="w-4 h-4" />
<span>Gerenciar dados pessoais</span>
</div>
</div>
<Link href="/patient/login" className="block mt-auto">
<Button className="w-full">Entrar como Paciente</Button>
</Link> </Link>
</CardContent>
</Card>
<Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<CardHeader className="text-center flex-shrink-0">
<Shield className="w-12 h-12 text-purple-600 mx-auto mb-4" />
<CardTitle>Área da Secretária</CardTitle>
<CardDescription>Gerencie consultas, pacientes e agenda médica</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Gerenciar consultas</span>
</div> </div>
</header> <div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Cadastrar pacientes</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Controlar agenda</span>
</div>
</div>
<Link href="/secretary/login" className="block mt-auto">
<Button className="w-full bg-purple-600 hover:bg-purple-700">Entrar como Secretária</Button>
</Link>
</CardContent>
</Card>
{} <Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<section className="flex flex-col md:flex-row items-center justify-between px-10 md:px-20 py-16 bg-gray-100"> <CardHeader className="text-center flex-shrink-0">
<div className="max-w-lg"> <Stethoscope className="w-12 h-12 text-green-600 mx-auto mb-4" />
<h2 className="text-gray-600 uppercase text-sm">Bem-vindo à Saúde Digital</h2> <CardTitle>Área Médica</CardTitle>
<h1 className="text-4xl font-extrabold text-black leading-tight mt-2"> <CardDescription>Acesso restrito para profissionais de saúde</CardDescription>
Soluções Médicas <br /> & Cuidados com a Saúde </CardHeader>
</h1> <CardContent className="space-y-4 flex-grow flex flex-col">
<p className="text-gray-600 mt-4"> <div className="space-y-3 flex-grow">
São mais de 25 anos de experiência em serviços médicos com qualidade e confiança. <div className="flex items-center gap-2 text-sm text-gray-600">
</p> <Calendar className="w-4 h-4" />
<div className="mt-6 flex space-x-4"> <span>Gerenciar agenda</span>
<Button className="rounded-full px-6 py-2 bg-blue-600 hover:bg-blue-700 text-white shadow-lg transition"> </div>
Nossos Serviços <div className="flex items-center gap-2 text-sm text-gray-600">
</Button> <User className="w-4 h-4" />
<Button <span>Ver pacientes</span>
variant="outline" </div>
className="rounded-full px-6 py-2 border-2 border-blue-600 text-blue-600 hover:bg-blue-600 hover:text-white transition" <div className="flex items-center gap-2 text-sm text-gray-600">
> <Clock className="w-4 h-4" />
Saiba Mais <span>Histórico de atendimentos</span>
</Button>
</div> </div>
</div> </div>
<div className="mt-10 md:mt-0"> <Link href="/doctor/login" className="block mt-auto">
<img <Button className="w-full bg-green-600 hover:bg-green-700">Entrar como Médico</Button>
src="https://cdn-icons-png.flaticon.com/512/387/387561.png" </Link>
alt="Médico" </CardContent>
className="w-80" </Card>
/>
</div>
</section>
{} <Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<section className="py-16 px-10 md:px-20 bg-white"> <CardHeader className="text-center flex-shrink-0">
<h2 className="text-center text-3xl font-bold text-black">Nossos Serviços</h2> <IdCard className="w-12 h-12 text-blue-600 mx-auto mb-4" />
<p className="text-center text-gray-600 mt-2">Serviços médicos que oferecemos</p> <CardTitle>Área do Gestor</CardTitle>
<CardDescription>Acesso restrito para gestores e coordenadores</CardDescription>
</CardHeader>
<CardContent className="space-y-4 flex-grow flex flex-col">
<div className="space-y-3 flex-grow">
<div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Relatórios gerenciais</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<User className="w-4 h-4" />
<span>Configurações do sistema</span>
</div>
<div className="flex items-center gap-2 text-sm text-gray-600">
<Clock className="w-4 h-4" />
<span>Gestão de usuários</span>
</div>
</div>
<Link href="#" className="block mt-auto">
<Button className="w-full bg-blue-600 hover:bg-blue-700">Entrar como Gestor</Button>
</Link>
</CardContent>
</Card>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8 mt-10"> <Card className="hover:shadow-lg transition-shadow flex flex-col h-full">
<div className="p-6 bg-gray-100 rounded-xl shadow hover:shadow-lg transition"> <CardHeader className="text-center flex-shrink-0">
<h3 className="text-xl font-semibold text-blue-600">Clínica Geral</h3> <Receipt className="w-12 h-12 text-orange-600 mx-auto mb-4" />
<p className="text-gray-600 mt-2"> <CardTitle>Área de Finanças</CardTitle>
Atendimento médico geral com foco na prevenção e diagnóstico. <CardDescription>Acesso restrito para profissionais do setor financeiro</CardDescription>
</p> </CardHeader>
<Button className="mt-4 rounded-full bg-blue-600 hover:bg-blue-700 text-white px-5 py-2"> <CardContent className="space-y-4 flex-grow flex flex-col">
Agendar <div className="space-y-3 flex-grow">
</Button> <div className="flex items-center gap-2 text-sm text-gray-600">
<Calendar className="w-4 h-4" />
<span>Relatórios financeiros</span>
</div> </div>
<div className="p-6 bg-gray-100 rounded-xl shadow hover:shadow-lg transition"> <div className="flex items-center gap-2 text-sm text-gray-600">
<h3 className="text-xl font-semibold text-blue-600">Pediatria</h3> <User className="w-4 h-4" />
<p className="text-gray-600 mt-2"> <span>Faturamento</span>
Cuidado especializado para crianças e adolescentes.
</p>
<Button className="mt-4 rounded-full bg-blue-600 hover:bg-blue-700 text-white px-5 py-2">
Agendar
</Button>
</div> </div>
<div className="p-6 bg-gray-100 rounded-xl shadow hover:shadow-lg transition"> <div className="flex items-center gap-2 text-sm text-gray-600">
<h3 className="text-xl font-semibold text-blue-600">Exames</h3> <Clock className="w-4 h-4" />
<p className="text-gray-600 mt-2"> <span>Controle de pagamentos</span>
Exames laboratoriais e de imagem com precisão e agilidade.
</p>
<Button className="mt-4 rounded-full bg-blue-600 hover:bg-blue-700 text-white px-5 py-2">
Agendar
</Button>
</div> </div>
</div> </div>
</section> <Link href="#" className="block mt-auto">
<Button className="w-full bg-orange-600 hover:bg-orange-700">Entrar como Financeiro</Button>
{} </Link>
<footer className="bg-black text-white py-6 text-center"> </CardContent>
<p>© 2025 MidConnecta</p> </Card>
</footer>
</div> </div>
); </div>
</div>
)
} }

6
package-lock.json generated
View File

@ -46,11 +46,11 @@
"geist": "^1.3.1", "geist": "^1.3.1",
"input-otp": "1.4.1", "input-otp": "1.4.1",
"lucide-react": "^0.454.0", "lucide-react": "^0.454.0",
"next": "^14.2.16", "next": "14.2.16",
"next-themes": "^0.4.6", "next-themes": "^0.4.6",
"react": "^18.3.1", "react": "^18",
"react-day-picker": "9.8.0", "react-day-picker": "9.8.0",
"react-dom": "^18.3.1", "react-dom": "^18",
"react-hook-form": "^7.60.0", "react-hook-form": "^7.60.0",
"react-resizable-panels": "^2.1.7", "react-resizable-panels": "^2.1.7",
"recharts": "2.15.4", "recharts": "2.15.4",

View File

@ -47,11 +47,11 @@
"geist": "^1.3.1", "geist": "^1.3.1",
"input-otp": "1.4.1", "input-otp": "1.4.1",
"lucide-react": "^0.454.0", "lucide-react": "^0.454.0",
"next": "^14.2.16", "next": "14.2.16",
"next-themes": "^0.4.6", "next-themes": "^0.4.6",
"react": "^18.3.1", "react": "^18",
"react-day-picker": "9.8.0", "react-day-picker": "9.8.0",
"react-dom": "^18.3.1", "react-dom": "^18",
"react-hook-form": "^7.60.0", "react-hook-form": "^7.60.0",
"react-resizable-panels": "^2.1.7", "react-resizable-panels": "^2.1.7",
"recharts": "2.15.4", "recharts": "2.15.4",

View File

@ -1,23 +1,25 @@
{ {
"compilerOptions": { "compilerOptions": {
"target": "esnext",
"lib": ["dom", "dom.iterable", "esnext"], "lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true, "allowJs": true,
"target": "ES6",
"skipLibCheck": true, "skipLibCheck": true,
"strict": true, "strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true, "noEmit": true,
"esModuleInterop": true, "esModuleInterop": true,
"module": "esnext", "module": "esnext",
"moduleResolution": "node", "moduleResolution": "bundler",
"resolveJsonModule": true, "resolveJsonModule": true,
"isolatedModules": true, "isolatedModules": true,
"jsx": "preserve", "jsx": "preserve",
"incremental": true, "incremental": true,
"plugins": [{ "name": "next" }], "plugins": [
"baseUrl": ".", // adiciona esta linha {
"paths": { // adiciona esta linha "name": "next"
"@/*": ["./*"] // e esta linha }
],
"paths": {
"@/*": ["./*"]
} }
}, },
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],