A demo application showing developement of microservices, service interactions, monitoring e.t.c.
- Customers today have a lot tasks they do not have the man power to accomplish, therefore they are willing to designate a lot of this tasks to private contractors and riders.
- This solution will focus on the rider niche, it will provide a market place to find riders and manage the job assigned to a rider.
- Help riders run a more efficient business
- Drive more customers to rider services
- Allow Customers to explore options for Riders
- Allow Customers to send job request to Riders
- Rider can accept/decline job
- Customers can track job status
- Customers and Riders can chat through a messaging system
- Customers can manage job history
- Riders can manage job history
Customer
is an individual or business owner looking for a rider to comlete a jobRider
is a qualified individual that can deliver and pick up packages for customersJob
an open ended task that needs to be completed by the customer e.g. A customer wants to deliver a package to his client across the city
- No payment feature
- No data encryption
- Minimal Authentication
- All riders are vetted and trusted
- All jobs are within one city or a single geographical area
- Riders can only do one job at a time
- Explore and find riders
- Create a job request
- Track an accepted and ongoing job request
- Chat with riders through app
- Manage job history
- Rate the riders service
- Update my account information
- Get notified on job request
- Accept or Decline job
- View assigned and accepted jobs
- Start and finish an accepted job
- Manage job history
- Update my account information
- Signup
- Name
- Address
- Phone
- Explore riders
- Find riders
- Filter riders by available options
- Create a job request
- Job description
- Package description
- Pick up address
- Destination address
- Status
- Track jobs
- Get live status update on the job
- Update my account information
- Name
- Address
- Phone
- Manage previous jobs
- Rate riders
- Signup
- Name
- Address
- Phone
- Get notified when job requests are made
- Can only complete one job request at a time
- Accept or Decline job
- Update current job
- Update live status of job at hand
- Update my account information
- Name
- Address
- Phone
- Manage previous jobs
- Rate customers
- Containers Docker & Docker-Compose
- Container Orchestration Kubernetes
- CI for Kubernetes-native applications skaffold
- Client UI React
- Web gateway Nginx
- Rest API Gateway Traefik
- GraphQL API Gateway GraphQL
- Message Broker NATS
- Caching Redis
- Web Sockets Socket io
- Search Engine Elastic Search
- Load Generator Python
- RPC gRPC
- Material UI React
- PostgreSQL Client for the Mac Postico
-
Client UI
(React, material-ui, Docker)- Signup
- Login
- Explore and find riders
- Create jobs
- Assign jobs to riders
- List jobs
- Delete job
- Update job
- List notifications
- Chat messenger
- List job history
-
REST API Gateway
(Traefik, Docker)- It receives requests on behalf of the system and finds out which components are responsible for handling them.
-
GraphQL API Gateway
(GraphQL, Docker)- Graph API for the system.
-
Job
(REST, PostgreSQL, Python, Docker)- Create job
- Get job
- Delete job
- Update job
-
User
(REST, MongoDB, Python, Docker)- Sign up
- Login
- Get user
- Delete user
- Update user
- Authenticate user
- Generate user token for app access
- Renew user tokens for app access
- Check if token is valid
-
Chat
(Web-Socket, Go, Docker)- Creates rooms for users to chat
-
Activity
(NodeJS, Typescript, Docker) -
Load-generator
(Python, Docker)- Generate load for the services
- Install brew on your system
- Install Docker on your system
- Install nodeJS globally on your system
- Install python-poetry globally on your system python-poetry
- Install nodemon globally on your system run
npm i -g nodemon