Antivity gives more purpose to your walk. Discover things, notice your surroundings, and make every step more meaningful.
- Daily Missions: Gamified walking challenges with specific objectives
- Random Target Generation: Dynamic objectives like finding "Cat", "Car", "Tree", etc.
- Mission Progress Tracking: Personal mission status and completion tracking
- AI-Powered Validation: Uses Gemini AI to validate found objects in photos
- Badge Collection: Earn badges based on completed missions
- Progress Tracking: Unlock badges after completing certain numbers of missions
- Profile Display: Showcase earned badges on your profile
- Social Feed: Share photos from your walks with captions
- Follow System: Follow and unfollow other users
- Like & Comment: Engage with posts through likes and replies
- User Search: Discover people and posts with advanced search
- Profile Sharing: Share profile links with others
- Photo Journal: Automatic creation of journal entries from walks
- Story Generation: Each walk creates a story with title and content
- Calendar View: Browse journal entries by date
- Image Gallery: View and download photos from walks
- Walk History: Track all previous walking sessions
- Customizable Profiles: Display name, username, bio, and avatar
- Photo Gallery: Display user's walk photos in organized grids
- Activity Statistics: Track walking sessions, followers, and following
- Badge Showcase: Display earned achievements
- Real-time Camera: Take photos during walks to complete objectives
- GPS Tracking: Location-based walking sessions
- Session Management: Track walk duration, distance, and photos
- Offline Support: Continue walking even without internet connection
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS v4 - Modern utility-first CSS framework
- shadcn/ui - Beautiful and accessible UI components
- PWA Support - Progressive Web App capabilities
- Firebase Authentication - Secure user authentication
- Firestore Database - NoSQL database for real-time data
- Firebase Storage - Image and file storage
- Gemini AI - Image validation and object recognition
- Responsive Design - Mobile-first approach
- Image Optimization - Next.js Image component
- Node.js 18+
- npm or yarn
- Firebase project
- Gemini AI API key
-
Clone the repository
git clone https://github.com/Ayash13/antivity.git cd antivity -
Install dependencies
npm install # or yarn install -
Set up environment variables
Create a.env.localfile in the root directory:# Firebase Configuration NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_id # Gemini AI Configuration GOOGLE_GENERATIVE_AI_API_KEY=your_gemini_api_key
-
Set up Firebase
- Create a new Firebase project
- Enable Authentication (Email/Password)
- Set up Firestore Database
- Configure Firebase Storage
- Add your domain to authorized domains
-
Set up Gemini AI
- Get your API key from Google AI Studio
- Add the key to your environment variables
-
Run the development server
npm run dev # or yarn dev -
Open your browser
Navigate to http://localhost:3000
users/
{uid}/ - displayName, username, bio, photoURL, createdAt
missions/
{missionId}/ - missionId, status
pathSessions/
{sessionId}/ - createdAt, items, selfieImageUrl, totalDistance
journal/
{journalId}/ - storyTitle, storyContent, resultImageUrl, createdAt
followers/
{followerId}/ - followerId, createdAt
following/
{followingId}/ - followingId, createdAt
mission/
{missionId}/ - title, description, imageUrl, status
badge/
{badgeId}/ - name, badgeUrl, mission (required count)
posts/
{postId}/ - uid, content, images, createdAt, likes
replies/
{replyId}/ - uid, content, createdAt
- Create Account: Sign up with email and password
- Set Profile: Add your display name, username, and avatar
- Grant Permissions: Allow camera and location access
- Start Walking: Begin your first mission from the main screen
- Select Mission: Choose from available daily missions
- Start Walking: Tap "Start" to begin your walking session
- Find Objects: Use your camera to find the required objects
- Take Photos: Capture images of the objects you find
- Complete Mission: Finish your walk and earn badges
- Share Photos: Post your favorite walk photos to the social feed
- Follow Users: Connect with other walkers in your community
- Engage: Like and comment on posts from people you follow
- Discover: Use search to find new people and interesting content
Antivity uses a cohesive design system with:
- Primary Colors: Light blue (#6CD3FF), Blue (#50B0FF)
- Accent Colors: Purple (#7D47B9), Yellow (#FAD02C)
- Typography: Ubuntu font family with multiple weights
- Shadows: Consistent drop shadows using the blue color palette
- Rounded Corners: Generous border radius for friendly appearance
antivity/
βββ app/ # Next.js App Router pages
β βββ (nav)/ # Pages with navigation
β β βββ main/ # Main mission screen
β β βββ social/ # Social feed and interactions
β β βββ journal/ # Photo journal and history
β β βββ profile/ # User profiles and settings
β βββ sign-in/ # Authentication pages
β βββ path/ # Walking session pages
βββ components/ # Reusable UI components
βββ context/ # React context providers
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions and Firebase
β βββ firebase/ # Firebase service functions
βββ public/ # Static assets
βββ styles/ # Global styles & Tailwind config
- AuthGuard: Protects routes requiring authentication
- BottomNav: Main navigation component
- SwipeableCardStack: Mission card interface
- PermissionDialog: Camera/location permission requests
- Authentication: User sign-up, sign-in, and session management
- Firestore: Real-time database operations
- Storage: Image upload and retrieval
- Missions: Mission management and progress tracking
- Badges: Achievement system
- Social: Follow system, posts, and interactions
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Use the existing design system
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Gemini AI for providing intelligent image validation
- Firebase for robust backend infrastructure
- Next.js team for the excellent React framework
- shadcn/ui for beautiful UI components
- Tailwind CSS for the utility-first CSS framework
β¨ Transform your daily walks into meaningful adventures with Antivity!