A Rails API for authenticated dream journaling and AI-assisted interpretation.
The service stores a user's dream entries, supports search and lifecycle management, and creates structured interpretations through the OpenAI Assistants API.
- Devise-based user registration and authentication
- User-scoped dream records
- Search across dream descriptions
- Soft-delete and completion lifecycle
- Nested interpretation resources
- Structured AI output with meaning, tags, questions, and multiple perspectives
- PostgreSQL persistence
- Docker production image
POST /users
POST /users/sign_in
DELETE /users/sign_out
GET /api/v1/dreams
POST /api/v1/dreams
GET /api/v1/dreams/:id
PUT /api/v1/dreams/:id
DELETE /api/v1/dreams/:id
GET /api/v1/dreams/search
GET /api/v1/dreams/:dream_id/interpretations
POST /api/v1/dreams/:dream_id/interpretations
GET /api/v1/dreams/:dream_id/interpretations/:id
PUT /api/v1/dreams/:dream_id/interpretations/:id
DELETE /api/v1/dreams/:dream_id/interpretations/:id
- Ruby 3.2
- Rails 7.1
- PostgreSQL
- Devise
- JWT
- ruby-openai
- Docker
bundle install
bin/rails db:create db:migrate
bin/rails serverRequired environment variables include:
DATABASE_URL
OPENAI_KEY
ASSISTANT_ID
Use a local .env file for development and keep it out of version control.
The React client lives in VoldemLive/sbfront.
This is a product prototype and portfolio code sample. Generated interpretations are reflective content, not medical advice or a clinical assessment.