A comprehensive social platform designed for Christian women to connect, share, pray, and support each other through various community features.
WisdomWalk is a full-stack application consisting of three main components:
- Backend API - Node.js/Express REST API with Socket.IO for real-time features
- Mobile App - Flutter/Dart cross-platform mobile application
- Admin Dashboard - Next.js/React TypeScript web dashboard for administration
-
Two-Step Verification System
- Email verification with OTP codes
- Admin verification with live photo and national ID upload
- Secure account access control
-
Community Groups
- Single & Purposeful
- Marriage & Ministry
- Healing & Forgiveness
- Motherhood in Christ
- Group-specific content and discussions
-
Content Sharing
- Prayer requests with prayer responses
- Anonymous sharing (testimonies, confessions, struggles)
- Virtual hugs with scripture verses
- Post likes, comments, and engagement
-
Real-Time Chat
- Direct messaging between users
- Group chat rooms
- Message reactions and replies
- File attachments (images, videos, documents)
- Online status indicators
-
Events & Bookings
- Virtual events (Zoom/Google Meet integration)
- Event booking system
- Event notifications
-
Her Move Feature
- Location-based requests
- Search and connect with nearby users
- Location sharing functionality
- User verification management
- Content moderation (posts, comments, messages)
- Report handling system
- User management (block, ban, unblock)
- Group administration
- Notification broadcasting
- Dashboard analytics and statistics
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT (JSON Web Tokens)
- Real-time: Socket.IO
- File Storage: Cloudinary
- Email Service: Resend/Nodemailer
- Security: Helmet, CORS, Rate Limiting, bcrypt
- Framework: Flutter
- Language: Dart
- State Management: Provider
- Routing: GoRouter
- HTTP Client: http package
- Local Storage: shared_preferences, flutter_secure_storage
- Real-time: socket_io_client
- Image Handling: cached_network_image, image_picker
- Framework: Next.js 15
- Language: TypeScript
- UI Library: React 19
- Styling: Tailwind CSS
- Components: Radix UI, shadcn/ui
- Charts: Chart.js, Recharts
- Forms: React Hook Form with Zod validation
Wisdom-Walk-App/
βββ Backend/ # Node.js/Express API
β βββ config/ # Database, Cloudinary, Multer configs
β βββ controllers/ # Route controllers
β βββ middleware/ # Auth, validation, upload middleware
β βββ models/ # MongoDB schemas
β βββ routes/ # API routes
β βββ socket/ # Socket.IO handlers
β βββ utils/ # Helper functions, email service
β βββ server.js # Entry point
β
βββ Frontend/ # Flutter mobile app
β βββ wisdomwalk/
β βββ lib/
β β βββ models/ # Data models
β β βββ providers/ # State management
β β βββ services/ # API services
β β βββ views/ # UI screens
β β βββ widgets/ # Reusable widgets
β β βββ routing/ # Navigation
β β βββ themes/ # App theming
β βββ pubspec.yaml # Dependencies
β
βββ admin-dashboard/ # Next.js admin panel
βββ app/ # Next.js app directory
β βββ api/ # API routes
β βββ dashboard/ # Dashboard pages
β βββ login/ # Admin login
βββ components/ # React components
βββ lib/ # Utilities, API helpers
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- Flutter SDK (v3.7.2 or higher)
- npm or yarn
- Cloudinary account (for file storage)
- Email service (Resend API key or SMTP credentials)
- Navigate to the Backend directory:
cd Backend- Install dependencies:
npm install- Create a
.envfile in the Backend directory:
# Server
PORT=5000
NODE_ENV=development
# Database
MONGO_URI=your_mongodb_connection_string
# JWT
JWT_SECRET=your_jwt_secret_key
# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Email (Resend)
RESEND_API_KEY=your_resend_api_key
ADMIN_EMAIL=admin@wisdomwalk.com
# CORS
FRONTEND_URL=http://localhost:3000
MOBILE_APP_URL=http://localhost-
Start MongoDB (if running locally)
-
Seed the database (optional):
npm run seed- Start the development server:
npm run devThe API will be available at http://localhost:5000
- Navigate to the Frontend directory:
cd Frontend/wisdomwalk- Install dependencies:
flutter pub get- Update the API base URL in
lib/services/api_service.dart:
static const String baseUrl = 'http://your-backend-url/api';- Run the app:
# For Android
flutter run
# For iOS
flutter run -d ios
# For specific device
flutter devices
flutter run -d <device-id>- Navigate to the admin-dashboard directory:
cd admin-dashboard- Install dependencies:
npm install- Create a
.env.localfile:
NEXT_PUBLIC_API_URL=http://localhost:5000/api- Start the development server:
npm run devThe admin dashboard will be available at http://localhost:3000
http://localhost:5000/api
POST /api/auth/register- Register new user (requires live photo and national ID)POST /api/auth/login- User loginPOST /api/auth/verify- Verify email with OTP codePOST /api/auth/resend-verification- Resend verification emailPOST /api/auth/forgot-password- Request password resetPOST /api/auth/reset-password- Reset password with codePOST /api/auth/change-password- Change password (authenticated)POST /api/auth/logout- Logout user
GET /api/users/profile- Get current user profilePUT /api/users/profile- Update profilePOST /api/users/profile-photo- Update profile photoGET /api/users/search?q=query- Search usersGET /api/users/recent- Get recent active usersGET /api/users/:userId- Get user by IDPOST /api/users/block- Block a userPOST /api/users/unblock- Unblock a userPUT /api/users/online-status- Update online status
GET /api/posts- Get all posts (with filters: type, category)POST /api/posts- Create new postGET /api/posts/:postId- Get single postPUT /api/posts/:postId- Update postDELETE /api/posts/:postId- Delete postPOST /api/posts/:postId/like- Like/unlike postPOST /api/posts/:postId/prayer- Add prayer responsePOST /api/posts/:postId/virtual-hug- Send virtual hugGET /api/posts/:postId/comments- Get post comments
GET /api/chats- Get user's chatsPOST /api/chats/direct- Create direct chatGET /api/chats/:chatId/messages- Get chat messagesPOST /api/chats/:chatId/messages- Send messagePUT /api/chats/messages/:messageId- Edit messageDELETE /api/chats/messages/:messageId- Delete messagePOST /api/chats/messages/:messageId/reaction- Add reaction
GET /api/groups- Get user's groupsPOST /api/groups/join- Join a groupPOST /api/groups/leave- Leave a groupGET /api/groups/:groupType/info- Get group informationGET /api/groups/:groupType/posts- Get group postsGET /api/groups/:groupType/members- Get group membersGET /api/groups/:groupType/stats- Get group statisticsGET /api/groups/:groupType/chats- Get group chatsPOST /api/groups/:groupType/chats/:chatId/messages- Send group message
GET /api/events- Get all eventsPOST /api/events- Create event (admin)GET /api/events/:id- Get single eventPUT /api/events/:id- Update event (admin)DELETE /api/events/:id- Delete event (admin)
GET /api/notifications- Get user notificationsPUT /api/notifications/:id/read- Mark notification as readPOST /api/notifications/reports- Submit content report
GET /api/admin/verifications/pending- Get pending verificationsPOST /api/admin/users/:userId/verify- Verify/reject userGET /api/admin/users- Get all users (with filters)POST /api/admin/users/:userId/block- Block/unblock userPOST /api/admin/users/:userId/ban- Ban userGET /api/admin/reports- Get reported contentPOST /api/admin/reports/:reportId/handle- Handle reportPOST /api/admin/notifications/send- Send notificationsGET /api/admin/dashboard-stats- Get dashboard statistics
The API uses JWT (JSON Web Tokens) for authentication. Include the token in the Authorization header:
Authorization: Bearer <your_jwt_token>
Tokens can also be sent via cookies (httpOnly, secure in production).
- Welcome/Onboarding
- Login/Registration (multi-step)
- OTP Verification
- Dashboard (main feed)
- Prayer Wall
- Anonymous Share
- Wisdom Circles
- Her Move (location features)
- Chat (direct & group)
- Profile
- Settings
- Notifications
The app uses Provider for state management with the following providers:
AuthProvider- Authentication stateUserProvider- User dataPrayerProvider- Prayer postsWisdomCircleProvider- Group managementChatProvider- Chat functionalityNotificationProvider- NotificationsEventProvider- Events
- Dashboard (overview statistics)
- User Management
- User Verifications
- Posts Management
- Groups Management
- Reports Management
- Events Management
- Bookings Management
- Notifications
- Settings
- Real-time statistics
- User verification workflow
- Content moderation tools
- Report handling system
- Bulk notification sending
- Analytics and insights
- JWT-based authentication
- Password hashing with bcrypt (12 rounds)
- Rate limiting on API endpoints
- Input validation and sanitization
- File upload validation
- CORS protection
- Helmet.js security headers
- Secure cookie handling
- Two-factor verification system
- Profile information
- Verification status (email & admin)
- Group memberships
- Preferences and settings
- Blocked users list
- Online status
- Content and media
- Post type (prayer/share)
- Category (testimony/confession/struggle)
- Anonymous flag
- Engagement metrics (likes, prayers, hugs)
- Comments count
- Direct and group chats
- Message content and attachments
- Read receipts
- Reactions
- Reply threads
- Single, Marriage, Healing, Motherhood groups
- Group-specific posts
- Member management
- Admin roles
cd Backend
npm testcd Frontend/wisdomwalk
flutter testThe backend can be deployed to:
- Render
- Heroku
- AWS EC2
- DigitalOcean
- Railway
Ensure environment variables are set in your hosting platform.
# Build Android APK
flutter build apk --release
# Build Android App Bundle
flutter build appbundle --release
# Build iOS
flutter build ios --releasecd admin-dashboard
npm run build
npm startDeploy to:
- Vercel (recommended for Next.js)
- Netlify
- AWS Amplify
- Any Node.js hosting platform
PORT=5000
NODE_ENV=production
MONGO_URI=mongodb://...
JWT_SECRET=your_secret
CLOUDINARY_CLOUD_NAME=...
CLOUDINARY_API_KEY=...
CLOUDINARY_API_SECRET=...
RESEND_API_KEY=...
ADMIN_EMAIL=...
FRONTEND_URL=...
MOBILE_APP_URL=...NEXT_PUBLIC_API_URL=https://your-api-url.com/api- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
For support, email tommr2323@gmail.com.com or bekelueshete@gmail.com create an issue in the repository.
- Built with love for the Christian women's community
- Special thanks to all contributors and testers
WisdomWalk - Walking in wisdom, growing in faith, connecting in love.