A digital sanctuary for mental wellness, mood tracking, and inner peace.
SoulSpace is a full-stack web application designed to help users track their emotional journey, find daily inspiration, and visualize their personal growth through a virtual "Peace Garden".
This project is organized as a monorepo with cleanly separated frontend and backend applications:
- Frontend: Next.js (React) application with Tailwind CSS for styling and Framer Motion for animations.
- Backend: Node.js / Express server using Prisma ORM.
- Database: PostgreSQL.
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS
- State Management: React Context (
AuthContext) - Animations: Framer Motion
- HTTP Client: Axios
- Runtime: Node.js
- Framework: Express.js
- ORM: Prisma (v5)
- Authentication: JSON Web Tokens (JWT) & Bcrypt
- Database: PostgreSQL
- Node.js (v18+)
- PostgreSQL (Local or Remote instance)
Ensure you have a PostgreSQL database running and have the connection string ready.
cd backend
npm install
# Create a .env file
echo "DATABASE_URL=\"postgresql://user:password@localhost:5432/soulspace\"" > .env
echo "JWT_SECRET=\"your-secret-key\"" >> .env
echo "PORT=3001" >> .env
# Run database migrations
npx prisma migrate dev --name init
# Start the server
npm run devThe backend server runs on http://localhost:3001.
cd frontend
npm install
# Start the development server
npm run devThe frontend application runs on http://localhost:3000.
- Authentication: Secure Signup and Login system.
- Mood Journal: Track daily moods and thoughts. Entries are stored securely.
- Peace Garden: Visual representation of your consistency. The garden grows as you visit daily.
- Peace Jar: Get random daily affirmations and quotes.
- Reading History: Save and revisit your favorite quotes.
We welcome contributions! Please check out our Contribution Guidelines for details on how to get started, our code of conduct, and the pull request process.
This project uses GitHub Actions for continuous integration. The pipeline automatically:
- Installs dependencies for both frontend and backend.
- Runs linting checks on the frontend.
- Verifies the backend Prisma client generation.
- Builds the frontend application to ensure deployability.
This project is licensed under the MIT License - see the LICENSE file for details.