Skip to content

Flopchamp/FishCrewConnect

Repository files navigation

FishCrewConnect Platform

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.

Platform Features

Smart Messaging System

  • 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

Comprehensive Validation

  • 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

Complete Authentication Flow

  • User registration and secure login
  • Password reset with email workflow
  • JWT-based session management
  • Role-based access control (fishermen, boat owners, admins)

In-App Help & User Manuals

  • 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 Management

  • Job posting by boat owners
  • Job applications by fishermen
  • Application tracking and status management
  • Integration with messaging system

M-Pesa Payment Integration

  • 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

Quick Start

1. Backend Setup

cd FishCrewConnect-backend
npm install
# Configure .env file with database settings
# Set DARAJA_DEMO_MODE=true for testing
npm start

2. Frontend Setup

cd FishCrewConnect
npm install
npm start

3. Database Setup

  • Set up MySQL database
  • Run migration scripts in backend/scripts/
  • Configure connection in backend .env file

4. Demo Payment Testing

cd FishCrewConnect-backend
npm run test-demo-payment

Testing

Backend Testing

cd FishCrewConnect-backend/tests
node test-contacts-filtering.js
node test-email-validation.js

M-Pesa Demo Testing

# 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

Manual Testing Flow

  1. Register users (fishermen and boat owners)
  2. Verify input validation works
  3. Test password reset functionality
  4. Create jobs and applications
  5. Verify contacts filtering
  6. Test demo payments with provided M-Pesa credentials

Security Features

Data Protection

  • SQL injection prevention with parameterized queries
  • Input sanitization and validation
  • JWT token-based authentication
  • Password hashing with bcrypt

Privacy Controls

  • Contact filtering based on job application relationships
  • Role-based access control
  • Protected API endpoints
  • Secure password reset workflow

Documentation

  • 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

🛠️ Technology Stack

Backend

  • Node.js with Express.js
  • MySQL database
  • JWT for authentication
  • bcrypt for password hashing
  • Axios for HTTP requests

Frontend

  • React Native with Expo
  • Tailwind CSS (NativeWind)
  • React Navigation for routing
  • AsyncStorage for local data
  • Axios for API communication

Production Deployment

Backend

  • Configure production database
  • Set environment variables
  • Deploy to cloud service (AWS, Heroku, etc.)
  • Set up SSL certificates

Frontend

  • Build for iOS/Android app stores
  • Configure production API endpoints
  • Test on real devices
  • Submit to app stores

Development Workflow

  1. Backend Development: API endpoints, database models, business logic
  2. Frontend Development: UI components, screens, user experience
  3. Integration: Connect frontend to backend APIs
  4. Testing: Automated tests and manual QA
  5. Deployment: Production deployment and monitoring

Documentation & User Manuals

In-App Help System

  • 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

Available User Manuals

  • 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)

Support System

  • 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


Key Metrics

Functionality Implemented

  • 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

Code Quality

  • Clean, documented code
  • Proper error handling
  • Comprehensive testing
  • Security best practices
  • Professional UI/UX
  • Role-based help system

Project Status: COMPLETE

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! 🎣

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages