Personalized greeting app built with Express, featuring a polished UI, flexible greeting options, and CI/CD via GitHub Actions with Docker image publishing.
- Personalized greetings with tone, language, time-of-day, and emoji options
- Quick actions: greet, surprise name, and clear
- Recent greeting history saved locally
- Clean, modern UI and responsive layout
npm install
npm startOpen:
http://localhost:4000/
GET /api/greet
Query parameters:
name(string, default:Guest)tone(string:friendly,professional,playful,grateful)language(string:en,es,fr,sw,de)time(1ortrueto use time-of-day greeting)emoji(1ortrueto add an emoji)
Examples:
http://localhost:4000/api/greet?name=Dawa
http://localhost:4000/api/greet?name=Dawa&tone=playful&language=sw&time=1&emoji=1
Sample response:
{
"message": "Hello, Dawa! Great to see you! 👋",
"meta": {
"timeKey": "morning",
"tone": "friendly",
"language": "en"
}
}GET /health
Health response:
{
"status": "ok"
}npm test
npm run test:ci
npm run lintpublic/static UI assets (HTML/CSS)app.jsExpress app and API routesmain.jsserver entry pointtest/API tests
docker build -t greeting-app .
docker run -p 4000:4000 greeting-appdocker pull dawaedina27/greeting-app:latest
docker run -p 4000:4000 dawaedina27/greeting-app:latestThis project uses GitHub Actions to run tests and linting on every push, and to publish the Docker image when the pipeline succeeds.
- HTTP security headers via
helmet - Basic rate limiting on
/api/greet
- Create a feature branch
- Run
npm testandnpm run lintbefore opening a PR
MIT