Skip to content

Wake Them Up is a progressive web application (PWA) designed for couples to wake each other up using a single button with WebRTC technology. It works without any signaling server๐Ÿ˜‰

License

Notifications You must be signed in to change notification settings

ashutosh7i/wake-them-up

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Wake Them Up

๐ŸŒŸ Introduction

(Made for a friend๐Ÿ˜‰) Wake Them Up is a progressive web application (PWA) designed for couples to wake each other up using a single button with WebRTC technology. This unique app allows partners to stay connected and ensure they're up when needed, even when apart.

๐Ÿš€ Features

  • One-Click Wake Up: Simple interface with a large, central "Wake Up" button.
  • Real-Time Communication: Utilizes WebRTC for instant, peer-to-peer connections.
  • Chat Functionality: Built-in chat system for quick messages.
  • Audio/Video Calls: Integrated calling feature for more personal communication.
  • Pairing System: Secure pairing mechanism to connect partners.
  • Responsive Design: Works seamlessly across various devices and screen sizes.
  • Dark Mode Support: Comfortable usage in low-light conditions.

๐Ÿ›  Technology Stack

  • Frontend: Next.js with React and TypeScript
  • UI Framework: NextUI for sleek, modern components
  • State Management: React Hooks for local state management
  • Real-Time Communication: PeerJS (WebRTC)
  • Authentication: Custom auth system build with Appwrite
  • Backend Services: Appwrite for backend functionalities
  • Styling: Tailwind CSS for utility-first styling
  • Icons: Lucide React for scalable vector icons
  • Audio: Web Audio API for custom sound effects

๐Ÿ— Architecture

The application follows a serverless architecture with Next.js as the core framework. It uses a combination of server-side rendering (SSR) and client-side rendering for optimal performance and SEO.

Key components include:

  • PeerConnection: Manages WebRTC connections
  • ChatMode: Handles the chat interface and functionality
  • WakeButton: Central component for initiating wake-up calls
  • ConnectionStatusManager: Monitors and displays connection status
  • SettingsModal: Allows users to manage pairing and preferences

๐Ÿ”ง Setup and Installation

  1. Clone the repository
  2. Install dependencies: npm install
  3. Set up environment variables (see .env.example)
  4. Run the development server: npm run dev
  5. Build for production: npm run build
  6. Start the production server: npm start

๐Ÿ“ฑ PWA Support

The app is configured as a Progressive Web App, allowing users to install it on their devices for a native-like experience. It includes:

  • Customized manifest.json
  • Service worker for offline functionality
  • Responsive design for various screen sizes

๐Ÿ” Security

  • Secure peer-to-peer connections using WebRTC
  • User authentication and authorization
  • Data encryption for sensitive information

๐ŸŽจ UI/UX Design

The interface is designed to be intuitive and user-friendly, with a focus on the primary "Wake Up" functionality. It features:

  • A large, central wake-up button
  • Clear status indicators
  • Easy access to chat and settings
  • Smooth animations and transitions

๐Ÿ”Š Audio Features

  • Custom wake-up sounds
  • Ringtones for incoming calls
  • New message notifications

๐Ÿ”„ State Management

The application uses React's built-in state management with hooks, including:

  • useState for local component state
  • useEffect for side effects and lifecycle management
  • useCallback for memoized callbacks
  • Custom hooks for reusable logic

๐Ÿ“ก API Integration

The app integrates with Appwrite backend services for:

  • User authentication
  • Partner pairing
  • Storing user preferences and chat history

๐Ÿš€ Deployment

The application is designed to be easily deployable on various platforms that support Next.js, such as Vercel, Netlify, or custom servers.

๐Ÿค Contributing

Contributions to Wake Him Up are welcome! Please refer to the CONTRIBUTING.md file for guidelines on how to make contributions.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE.md file for details.

๐Ÿ‘จโ€๐Ÿ’ป Author

Made with ๐Ÿ’– by Ashutosh7i


Wake Him Up - Connecting couples, one wake-up call at a time! ๐Ÿ˜ด

Demo video-

Alt text

About

Wake Them Up is a progressive web application (PWA) designed for couples to wake each other up using a single button with WebRTC technology. It works without any signaling server๐Ÿ˜‰

Topics

Resources

License

Stars

Watchers

Forks