Back to Projects

Calming Space - Meditation & Relaxation App

Calming Space - Meditation & Relaxation App

Description

Calming Space is a full-stack meditation and relaxation application designed to create a personalized sanctuary for mindfulness. It features ambient sound mixing, a mindfulness timer, user authentication, and Spotify integration. Users can mix different ambient sounds (rain, forest, ocean), use a meditation timer, and play music from a curated collection or their Spotify playlists.

Challenges & Solutions

The key challenges included implementing a responsive audio mixing interface with precise volume controls, setting up secure authentication with both local and OAuth strategies for Spotify, and developing a CI/CD pipeline for automated testing and deployment. I also had to ensure the audio synchronization worked flawlessly across different devices and browsers.

Technical Achievements

  • Custom Audio Engine: Implemented a WebAudio API-based system that allows users to mix and control multiple audio sources simultaneously with volume adjustment
  • OAuth Integration: Securely implemented Spotify OAuth2 authentication flow, enabling users to access and play their personal music library
  • Responsive UI/UX: Created an intuitive interface with CSS animations and responsive design principles that works across all devices
  • Session Management: Built a robust user authentication system using Passport.js with secure cookie handling and MongoDB session storage
  • CI/CD Pipeline: Established a GitHub Actions workflow for automated testing and deployment to a Digital Ocean cloud server
  • HTTPS Security: Configured SSL/TLS with automatic certificate renewal via Let's Encrypt for secure HTTPS connections
  • API Integration: Developed RESTful endpoints to interact with Spotify's Web API and WebPlayback SDK for music streaming functionality

Technologies Used

Node.js Express MongoDB JavaScript CSS3 EJS Passport.js Spotify API WebAudio API OAuth2 GitHub Actions

Project Details

Date: October 2024
Category: Full-stack Web Application