A React-based journaling application with AI-powered insights using OpenAI.
- Docker and Docker Compose
- Node.js 18+ (for local development)
- OpenAI API key
- Clone the repository
- Copy
.env.exampleto.envand add your OpenAI API key:cp .env.example .env
- Edit
.envand add your OpenAI API key - Run with Docker Compose:
docker-compose up --build
- Open http://localhost:3000
cd frontend
npm install
npm run devcd backend
cp .env.example .env
# Edit .env with your OpenAI API key
npm install
npm run devqjournal/
├── frontend/ # React app with Vite
│ ├── src/
│ │ ├── components/ # React components
│ │ └── App.jsx
│ ├── Dockerfile
│ └── package.json
├── backend/ # Node.js Express API
│ ├── server.js
│ ├── Dockerfile
│ └── package.json
├── k8s/ # Kubernetes manifests
│ ├── namespace.yaml
│ ├── backend-deployment.yaml
│ ├── frontend-deployment.yaml
│ ├── ingress.yaml
│ └── README.md
├── .github/
│ └── workflows/ # GitHub Actions
├── docker-compose.yml
└── deploy.sh # K8s deployment script
docker-compose up --buildUse the deployment script:
./deploy.sh-
Create namespace and secret:
kubectl create namespace qjournal kubectl create secret generic qjournal-secrets \ --from-env-file=.env \ --namespace=qjournal
-
Deploy all resources:
kubectl apply -f k8s/
-
Check status:
kubectl get pods -n qjournal
-
Port forward to test:
kubectl port-forward svc/qjournal-frontend 8080:80 -n qjournal
See k8s/README.md for detailed deployment instructions.
The app automatically builds and pushes Docker images to GitHub Container Registry on every commit to main/master branch.
Images are available at:
- Frontend:
ghcr.io/s-quatres/qjournal-frontend:latest - Backend:
ghcr.io/s-quatres/qjournal-backend:latest
OPENAI_API_KEY: Your OpenAI API key (required)PORT: Server port (default: 3001)
- 📝 Step-by-step journaling with 5 reflective questions
- 🤖 AI-powered insights and feedback using OpenAI
- 🎨 Modern UI with Tailwind CSS
- 🐳 Containerized with Docker
- 🚀 CI/CD with GitHub Actions
- 📱 Responsive design
MIT