Skip to content

Shaimaa-22/time_capsule_app

Repository files navigation

Time Capsule App

A modern Flutter application that allows users to create digital time capsules by securely storing memories, messages, photos, and files to be unlocked at a future date. The platform combines secure storage, scheduled delivery, and social sharing to help users preserve meaningful moments and reconnect with them in the future.


Features

Digital Time Capsules

  • Create personal or shared time capsules
  • Store text messages, images, and documents
  • Schedule capsules to unlock on future dates
  • Secure storage and retrieval of memories
  • Privacy controls for personal and shared capsules

User Experience

  • Arabic and English language support
  • Dark and light theme modes
  • Responsive design for phones and tablets
  • Push notifications for upcoming and unlocked capsules
  • Offline access to previously opened capsules

Social & Collaboration

  • Share capsules with friends and family
  • Create collaborative memory capsules
  • Receive notifications when shared capsules become available
  • Manage shared access and permissions

Analytics & Management

  • Personal dashboard with capsule statistics
  • Capsule history and activity tracking
  • File management and storage monitoring
  • Secure user authentication and profile management

Architecture

The application follows the MVVM (Model–View–ViewModel) architecture to ensure scalability, maintainability, and separation of concerns.

lib/
├── models/          # Data models
├── services/        # Business logic and API communication
├── view_models/     # State management using Provider
├── views/           # Screens and user interfaces
├── widgets/         # Reusable UI components
└── utils/           # Helpers and constants

Main Components

  • AuthService – Authentication and session management
  • CapsuleService – Capsule creation, retrieval, and management
  • NotificationService – Scheduled notifications and reminders
  • RemoteDB – PostgreSQL integration and database operations
  • ViewModels – State management using the Provider pattern

Technology Stack

Category Technologies
Frontend Flutter, Dart
State Management Provider
Backend PostgreSQL
Authentication JWT
Notifications Flutter Local Notifications
Localization Flutter Intl
File Storage Base64 Encoding
Architecture MVVM

Getting Started

Prerequisites

  • Flutter SDK 3.0+
  • Dart SDK 3.0+
  • PostgreSQL Database
  • Android Studio or VS Code
  • Android/iOS Emulator or Physical Device

Installation

git clone https://github.com/Shaimaa-22/time_capsule_app.git

cd time_capsule_app

flutter pub get

flutter run

Usage

Create a Capsule

  1. Tap the Create Capsule button.
  2. Add your message, photos, or files.
  3. Select the unlock date.
  4. Configure privacy settings.
  5. Save the capsule.

Open a Capsule

  1. Wait until the scheduled unlock date.
  2. Receive a notification.
  3. Open the capsule and view its contents.
  4. Save or share the memories.

Share a Capsule

  1. Enable sharing during creation.
  2. Add recipients.
  3. Recipients receive access when the capsule unlocks.
  4. Enjoy shared memories together.

Future Improvements

  • Cloud storage integration
  • End-to-end encryption
  • AI-generated memory summaries
  • Video and audio capsule support
  • Social timeline for shared capsules
  • Cross-platform web version

Author

Shaimaa Dwedar

Computer Engineering Graduate Flutter Developer | Full-Stack Developer | IoT & AI Enthusiast

About

Flutter application for creating digital memories that unlock at future dates.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages