FishCrewConnect is a production-ready platform connecting fishermen with boat owners for professional job opportunities. This repository contains a frontend (Expo/React Native mobile app and a Web Admin surface), and a Node.js backend API.
- Targeted Contacts: Fishermen only see boat owners they've applied to
- Professional Environment: Boat owners only see applicant fishermen
- Privacy Protection: No random messaging between unrelated users
- Email Format: RFC-compliant validation on all auth endpoints
- Contact Numbers: Digits-only restriction with real-time feedback
- Password Security: Length requirements and strength validation
- Dual-Layer: Frontend UX validation + Backend security validation
- User registration and secure login
- Password reset with email workflow
- JWT-based session management
- Role-based access control (fishermen, boat owners, admins)
- Role-Based Help: Automatic content filtering by user type
- Comprehensive Guides: Complete manuals for boat owners, fishermen, and admins
- Interactive Help Center: Search functionality and organized sections
- Support Integration: Built-in support ticket system with email notifications
- Multiple Access Points: Available from profile, jobs screen, and direct navigation
- Job posting by boat owners
- Job applications by fishermen
- Application tracking and status management
- Integration with messaging system
- Demo Mode: Test payments using provided M-Pesa credentials
- Real Payments: Production-ready Daraja API integration
- Auto-Commission: Platform commission automatically calculated
- Payment Tracking: Complete transaction history and status
- Secure Processing: Encrypted payment data and callbacks
cd FishCrewConnect-backend
npm install
# Configure .env file with database settings
# Set DARAJA_DEMO_MODE=true for testing
npm startcd FishCrewConnect
npm install
npm start- Set up MySQL database
- Run migration scripts in
backend/scripts/ - Configure connection in backend
.envfile
cd FishCrewConnect-backend
npm run test-demo-paymentcd FishCrewConnect-backend/tests
node test-contacts-filtering.js
node test-email-validation.js# Test demo payment integration
npm run test-demo-payment
# Or follow the mobile app demo flow:
# 1. Create job → 2. Apply → 3. Accept → 4. Complete → 5. Pay- Register users (fishermen and boat owners)
- Verify input validation works
- Test password reset functionality
- Create jobs and applications
- Verify contacts filtering
- Test demo payments with provided M-Pesa credentials
- SQL injection prevention with parameterized queries
- Input sanitization and validation
- JWT token-based authentication
- Password hashing with bcrypt
- Contact filtering based on job application relationships
- Role-based access control
- Protected API endpoints
- Secure password reset workflow
- Backend README:
FishCrewConnect-backend/README.md - Frontend README:
FishCrewConnect/README.md - Messaging Feature:
FishCrewConnect-backend/docs/MESSAGING_FEATURE.md - Testing Summary:
FishCrewConnect-backend/docs/TEST_SUMMARY.md
- Node.js with Express.js
- MySQL database
- JWT for authentication
- bcrypt for password hashing
- Axios for HTTP requests
- React Native with Expo
- Tailwind CSS (NativeWind)
- React Navigation for routing
- AsyncStorage for local data
- Axios for API communication
- Configure production database
- Set environment variables
- Deploy to cloud service (AWS, Heroku, etc.)
- Set up SSL certificates
- Build for iOS/Android app stores
- Configure production API endpoints
- Test on real devices
- Submit to app stores
- Backend Development: API endpoints, database models, business logic
- Frontend Development: UI components, screens, user experience
- Integration: Connect frontend to backend APIs
- Testing: Automated tests and manual QA
- Deployment: Production deployment and monitoring
- Location: Accessible from Profile tab → Help Center or Jobs screen help icon
- Content: Role-based manuals automatically shown based on user type
- Features: Search functionality, organized sections, support ticket integration
- Boat Owners: Complete guide from setup to crew management (
docs/BOATOWNER_USER_MANUAL.md) - Fishermen: Comprehensive guide for finding jobs and managing applications (
docs/FISHERMAN_USER_MANUAL.md) - Admins: Full administrative guide for platform management (
docs/ADMIN_USER_MANUAL.md) - Quick Reference: Essential features and shortcuts (
docs/QUICK_REFERENCE_GUIDE.md)
- Help-First Approach: Comprehensive in-app help before contacting support
- Support Tickets: Built-in support form with email notifications
- Email Integration: Automatic email notifications for support workflows
For detailed information on accessing user manuals, see: docs/USER_MANUAL_LOCATIONS.md
- 100% Authentication flow complete
- 100% Input validation implemented
- 100% Contacts filtering working
- 100% Password reset functional
- 100% API endpoints secured
- 100% User manuals integrated in-app
- Clean, documented code
- Proper error handling
- Comprehensive testing
- Security best practices
- Professional UI/UX
- Role-based help system
All requested features have been successfully implemented and tested:
- Contact Number Validation: Digits-only restriction
- Forgot Password Feature: Complete implementation
- Email Validation: Format validation on all forms
- Messaging/Contacts Filtering: Smart professional filtering
- User Manual Integration: In-app help system with role-based content
- General Quality: Error checking and optimization
The FishCrewConnect platform is ready for production deployment!
Connecting the fishing industry, one crew at a time! 🎣