Loading repository data…
Loading repository data…
arnobt78 / repository
A full-stack web application for professional home nursing care services. Built with React (Vite), Express.js, and MongoDB (Prisma ORM). The platform offers service information, job applications, contact and callback forms, blog/ratgeber content, and an admin dashboard to manage applications and email notifications.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A full-stack web application for professional home nursing care services. Built with React (Vite), Express.js, and MongoDB (Prisma ORM). The platform offers service information, job applications, contact and callback forms, blog/ratgeber content, and an admin dashboard to manage applications and email notifications.
Sernitas Care is a bilingual (German/English) marketing and operations site for a home nursing care provider. Visitors can browse services (Grundpflege, Behandlungspflege, etc.), read blog and guide content, submit job applications (Pflege and Karriere), request callbacks, and contact the team. Admins log in to view, update status, and delete applications; all form submissions trigger email notifications via SMTP (e.g. Gmail).
The app is split into:
| Layer | Technology |
|---|---|
| Frontend | React 18.3, Vite 5.4, React Router 7, React Query 5, React Hook Form, Zod, Tailwind CSS 3.4, Framer Motion, Axios |
| Backend | Node.js, Express 5.1, Prisma 6.6, Nodemailer, bcrypt, dotenv, cors, body-parser |
| Database | MongoDB (via Prisma) |
| Deployment | Frontend: Netlify; Backend: Coolify/VPS (Docker); DB: MongoDB on same VPS |
sernitas-care/
├── index.html # HTML entry; SEO meta, favicon
├── package.json # Dependencies and scripts
├── vite.config.js # Vite config (React plugin, build output)
├── tailwind.config.js # Tailwind theme (primary/secondary, fonts)
├── postcss.config.js # PostCSS for Tailwind
├── eslint.config.js # ESLint config
├── Dockerfile # Backend Docker image (multi-stage)
├── netlify.toml # Netlify redirects/build (if used)
├── hashPassword.js # Utility to generate ADMIN_PASSWORD_HASH
│
├── prisma/
│ └── schema.prisma # MongoDB schema (Application model)
│
├── server.js # Express app entry; CORS, routes, /health
├── server/
│ ├── applicationRoutes.js # /api/admin/login, /api/applications CRUD
│ └── emailRoutes.js # /api/send-email, send-application-notification, etc.
│
├── public/
│ └── service-worker.js # PWA: pre-cache static assets
│
└── src/
├── main.jsx # React root; Router, QueryClient, ScrollToTop, SW
├── App.jsx # Routes, ErrorBoundary, Navbar, Footer (conditional)
├── index.css # Global + Tailwind
├── reactQueryClient.js # React Query default options (staleTime, retry, etc.)
├── utility/
│ └── animation.js # Framer Motion variants (slideUp, slideBottom)
│
├── components/
│ ├── Navbar.jsx # Desktop/mobile nav, dropdowns, search
│ ├── Footer.jsx # Logo, links, social; uses PartnersSection, AffiliatesSection
│ ├── ScrollToTop.jsx # Scroll to top on route change
│ ├── SideHoverIcons.jsx # Fixed right strip: phone, email, contact, social
│ ├── Loading.jsx # Full-screen spinner
│ ├── PageNotFound.jsx # 404 page
│ ├── CachedImage.jsx # img + Cache API for PWA
│ ├── usePersistedQuery.js # React Query + localStorage (e.g. admin applications)
│ │
│ ├── ui/ # Reusable form primitives
│ │ ├── button.jsx # Variants: default, primary, outline; sizes
│ │ ├── input.jsx # Styled input (ref forwarded)
│ │ └── textarea.jsx # Styled textarea (ref forwarded)
│ │
│ ├── HomePage/ # Hero, CallbackRequest, Welcome, Testimonial, Cards, Map, Review, Steps, HomeConsultation, Accordion
│ ├── Cards/ # Cards.jsx (service grid), CardModal.jsx, cardData.js
│ ├── Accordion/ # AccordionSection.jsx, SingleAccordion.jsx, data.js (FAQ)
│ ├── TestimonialSection/
│ ├── ReviewSection/
│ ├── Contact/ # Contact.jsx (form → POST /api/send-email)
│ ├── ApplicationForm/ # Pflege application form → POST /api/applications + notification
│ ├── Admin/ # Admin.jsx, AdminLogin.jsx, AdminDashboard.jsx, ApplicantDetails.jsx, PaginationSelection.jsx
│ ├── ServicesPage/ # Tabbed layout + Grundpflege, Behandlungspflege, Verhinderungspflege, BetreuungEntlastung, Rufbereitschaft
│ ├── AboutUs/ # Tabbed layout + WirSindSernitas, Team, Leitbild, Kooperationsnetzwerk, MitgliedschaftBAP
│ ├── WissenswertesPage/ # Tabbed: FAQ, Aktuelles, PflegeBlog, PflegeRatgeber, Downloads; BlogPage, RatgeberPage; blogData.js, ratgeberData.js
│ ├── Karriere/ # KarrierePage.jsx, BewerbenPage.jsx (job form → POST /api/send-job-application)
│ ├── Footer/ # PartnersSection.jsx, AffiliatesSection.jsx
│ ├── Imprint/
│ ├── PrivacyPolicy/
│ ├── GeneralTerms/
│ └── Magazine/
│
└── assets/ # Images, icons (SVG), etc.
| Route | Component | Description |
|---|---|---|
/ | Home | Hero, callback, welcome, testimonials, cards, map, review, steps, home consultation, accordion |
/services/* | ServicesPage | Tabs: Grundpflege, Behandlungspflege, Verhinderungspflege, Betreuung & Entlastung, Rufbereitschaft |
/about-us/* |