The Next.js application behind sotercare.com. It serves three things: the public product site, the SoterCare Developers community page, and an authenticated dashboard for live monitoring data.
Built collaboratively by student developers. See SoterCare Developers for the community behind it.
- Product site — hero, mission, product, features, pricing, team, and FAQ sections with GSAP-driven scroll animation and Lenis smooth scrolling
- Community page —
/community: the student developer community, its events, impact figures, partners, and GitHub links - News —
/newsindex and per-article pages, statically generated from a JSON-backed store - Newsroom editor —
/editnews, a protected editor for creating and updating articles, with image cropping - Web dashboard —
/dashboard, authenticated; live vitals over Socket.IO, alerts, device list, activity timeline, and a recycle bin - SEO — generated
sitemap.xmlandrobots.txt, JSON-LD structured data, per-route metadata - Email — transactional sending via Resend with React Email templates
| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS · styled-components |
| Animation | GSAP + @gsap/react · Lenis smooth scroll |
| Realtime | socket.io-client |
Resend + @react-email/components |
|
| Icons | lucide-react |
| Analytics | @vercel/analytics |
src/
app/
page.tsx homepage
community/ community page
news/ news index + [slug] article pages
dashboard/ authenticated dashboard (login, timeline, recycle-bin)
editnews/ newsroom editor
api/ alerts · auth · dashboard · devices · me · timeline
sitemap.ts generated sitemap
robots.ts generated robots.txt
components/ page sections, popups, and dashboard widgets
lib/ data access helpers (news store, etc.)
data/
news.json news article source of truth
public/assets/ images, logos, and event photos
git clone https://github.com/SoterCare/web-dev-v2.git
cd web-dev-v2
npm install
npm run dev # http://localhost:3000Dashboard and email features need environment variables (API endpoint, auth secret, Resend key). Without them the public pages still render; the dashboard will not authenticate.
npm run dev # development server
npm run build # production build
npm start # serve the production build
npm run lint # ESLintBuilt by student developers in the SoterCare Developers community — Daham, Hirusha, Komudi, Kaweesha, Nimna, and Sanjula. See the contributors graph for the full record.
- Mobile_App — the React Native (Expo) mobile client
- community — events, guides, and how to get involved
Maintained by SoterCare Developers.