DreamSync is a collaborative bucket list and journey tracking application. It empowers users to document their dreams, turn them into actionable journeys, and collaborate with friends.
- Bucket List Management: Add, track, and organize your life goals (Dreams).
- Journeys: Collaborative adventures where you can invite friends to join your dreams.
- Community Feed: Share your public dreams and get inspired by others.
- Real-time Chat: Integrated chat for communicating with friends.
- Smart Updates: Instant feedback with background synchronization for a seamless experience.
- Framework: React Native with Expo
- Language: TypeScript
- Navigation: Expo Router (File-based routing)
- Styling: NativeWind (Tailwind CSS)
- State Management: Zustand
- Backend / Database: Firebase (Firestore, Auth)
├── app/ # Expo Router screens and navigation layout
│ ├── (tabs)/ # Main tab navigation (Home, Community, Journeys, Account)
│ ├── item/ # Dream detail screens
│ ├── chat/ # Chat screens
│ └── ... # Other routes
├── src/
│ ├── components/ # Reusable UI components
│ ├── services/ # Firebase service logic (Auth, Firestore)
│ ├── store/ # Zustand global stores (Bucket, Community)
│ ├── stores/ # Chat state management
│ ├── theme/ # Theme configuration
│ └── types/ # TypeScript type definitions
├── constants/ # App constants (Colors, Layout)
├── hooks/ # Custom React hooks (Theming)
└── docs/ # Documentation and future plans- Node.js (LTS recommended)
- Expo Go app on your mobile device (iOS/Android)
-
Clone the repository:
git clone <repository-url> cd DreamSync
-
Install dependencies:
npm install # or yarn install -
Configure Environment: Ensure you have a valid
.envfile with your Firebase configuration keys. -
Start the development server:
npx expo start
-
Run on device: Scan the QR code with Expo Go (Android) or Camera app (iOS).
This project utilizes specific AI workflows (.agent/) to maintain quality and consistency.
- /plan: Plan complex features before coding.
- /debug: Systematic debugging process.
- /enhance: Iterative feature improvements.
- /create: Scaffolding new components or modules.
Refer to GEMINI.md for detailed agent protocols.
- Create a new branch for your feature (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
Built with ❤️ for dreamers.