A comprehensive mobile application for connecting tradesmen with customers, featuring a modern Android app frontend and a robust NestJS backend.
Tradesman Handy is a comprehensive mobile platform designed to streamline the connection between skilled tradespeople and clients. The project consists of two main components: a mobile app for tradesmen built with Android/Kotlin, and a robust backend service powered by NestJS.
The Android application is built using modern Android development practices and Material 3 Design principles. It features:
- Clean Architecture with MVVM pattern
- Jetpack Compose for modern UI development
- Kotlin Coroutines for asynchronous operations
- Dagger Hilt for dependency injection
- Room Database for local data persistence
- Material 3 components for a polished, professional look
Key features include:
- Booking management system for tradesmen
- Real-time job notifications
- Profile management
- Schedule organization
- Client communication tools
The backend service is built with NestJS, providing a scalable and maintainable API. It includes:
- RESTful API endpoints for all app features
- PostgreSQL database with TypeORM
- JWT-based authentication
- Role-based access control
- Automated migrations for database schema
- Swagger API documentation
The backend handles:
- User authentication and authorization
- Booking management and scheduling
- Client-tradesman matching
- Notification dispatch
- Data persistence and retrieval
tradesman_Handy/
├── android/ # Android mobile app (Kotlin)
│ ├── app/ # Main application module
│ └── gradle/ # Gradle configuration
└── backend/ # NestJS backend server
├── src/ # Source code
└── test/ # Test files
- Kotlin for Android
- Jetpack Compose for modern UI
- Retrofit for API communication
- Kotlin Coroutines for async operations
- Dagger Hilt for dependency injection
- Moshi for JSON parsing
- JUnit and Mockito for testing
- NestJS (Node.js framework)
- PostgreSQL database
- TypeORM for database operations
- JWT authentication
- Swagger for API documentation
- User authentication for tradesmen
- Booking management system
- View pending bookings
- Accept/reject bookings
- View booking details
- Track booking status
- Dashboard with booking statistics
- Calendar view for scheduled bookings
- Modern Material 3 UI design
- Dark/Light theme support
- Responsive layout for different screen sizes
- Chat functionality between customers and tradesmen
- Rating and review system
- Push notifications for booking updates
- Customer mobile app
- Payment integration
- Service provider portfolios
- Advanced search and filtering
- Android Studio Arctic Fox or later
- JDK 17 or later
- Android SDK 34
- Node.js 18+ (for backend)
- PostgreSQL 14+
-
Clone the repository:
git clone https://github.com/yourusername/tradesman_Handy.git
-
Open the android folder in Android Studio
-
Configure your local.properties file with:
sdk.dir=YOUR_ANDROID_SDK_PATH -
Build the project:
./gradlew assembleDebug
-
Run the app on an emulator or physical device
-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Configure your .env file with:
DATABASE_URL=your_postgres_url JWT_SECRET=your_jwt_secret
-
Start the development server:
npm run start:dev
- Frontend: Unit tests using JUnit and Mockito
- Backend: Integration and e2e tests using Jest
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
- Android app: Beta testing phase
- Core booking management features implemented
- UI/UX improvements ongoing
- Unit tests being added
- Backend: In development
- Basic API endpoints implemented
- Database schema established
- Authentication system in place