Skip to content
This repository was archived by the owner on Aug 8, 2026. It is now read-only.

Repository files navigation

Petlyst Web

CI

Senior Project — Developed as part of the two-semester Senior Project course. Ranked 3rd in the department graduation project competition.

Award Ceremony

Project Advisor:
Prof. Dr. Oumout Chouseinoglou

Web platform for Petlyst — a system connecting pet owners, veterinarians, and clinics. Includes appointment booking, clinic management, hospitalization tracking, inventory, medical examinations, and reviews.

Tech Stack

  • Frontend: React 18 + TypeScript + Vite, Redux Toolkit, Tailwind CSS, Axios
  • Backend: Node.js + Express, PostgreSQL (pg), JWT auth, AWS S3 (image storage), Nodemailer (SMTP)
  • Other: AES-256-CBC encryption for sensitive fields (e.g. TC identity numbers), Expo push notifications

Repository Layout

backend/petlyst-webapp-backend/   Express API server
frontend/petlyst-webapp-frontend/ React + Vite client

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL 14+
  • An AWS S3 bucket (for image uploads)
  • A Google Maps Platform API key
  • (Optional) An SMTP account for password-reset / verification emails

1. Clone

git clone https://github.com/<your-account>/Petlyst-Web.git
cd Petlyst-Web

2. Backend setup

cd backend/petlyst-webapp-backend
cp .env.example .env
# Fill in real values in .env (DB credentials, JWT_SECRET, ENCRYPTION_KEY, AWS, SMTP, etc.)
npm install
npm start

The API listens on http://localhost:3000 by default.

ENCRYPTION_KEY is required and must be exactly 32 characters (AES-256). The server will refuse to start without it.

3. Frontend setup

cd frontend/petlyst-webapp-frontend
cp .env.example .env
# Fill in VITE_API_URL and VITE_GOOGLE_MAPS_API_KEY
npm install
npm run dev

The dev server runs on http://localhost:5173 and proxies /api to the backend.

4. Database

Schema bootstrapping is handled by the running backend (it auto-creates / migrates several columns on startup). For new installs you will need to create the database manually and run any migrations under backend/petlyst-webapp-backend/scripts/.

Environment Variables

See backend/petlyst-webapp-backend/.env.example and frontend/petlyst-webapp-frontend/.env.example for the full list.

Real .env files are git-ignored. Never commit credentials.

Encryption Notes

Sensitive identifiers (e.g. veterinarian TC numbers) are encrypted at rest with AES-256-CBC using ENCRYPTION_KEY from the environment. See backend/petlyst-webapp-backend/utils/encryption.js.

If you rotate ENCRYPTION_KEY, existing ciphertexts will become unreadable — re-encrypt them with the new key before swapping.

Roadmap

Planned post-launch improvements (CI, component decomposition, API client consolidation, logging discipline, smoke tests) are tracked in ROADMAP.md.

License

MIT — see LICENSE.

About

Healthcare web platform connecting pet owners, veterinarians, and clinics. Features appointment booking, medical records, hospitalization tracking, inventory, and reviews. Built with React, TypeScript, Node.js, PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages