Term 3 MERN stack project.
A transport company job logging application.
As the back-end and the front-end are deployed as two separate applications, it may take a few seconds for the back-end to wake up when trying to access the website for the first time after a period of time.
A user can only be created by the administrator. User: admin, password: guest
Each kind of user will have different permissions and different home screens depending on their permissions.
- Design, build, deploy and present an application built for a real world client.
- Meet with the business owner or organisation manager to find out what challenges they face.
- Solve their presented problem with an application your group will build.
Our client, a logistics transport company currently does not have any sort of digital infrastructure, therefore all records and history of transactions are all recorded on paper. As a result, keeping an accurate history of freight pickups and delivieries is a significant problem for them, their current paper system is inaccurate as well as time and labour intensive.
We designed and developed a full stack web application catered specifically for our clients needs. There are three different ki9nds of users, a customer, a driver and an administrator. Each user type has their own specific permissions, e.g a customer can not see a drivers job list. A customer will have their own unique login, created by the administrator that they can use to log on and create new jobs for pickup and delivery. A driver can only see their jobs list, which is assigned to them by the administrator. The administrator has access to all functionality of the application and is responsible for assigned jobs and creating unique logins for both drivers and customers. Table of Contents
We made heavy use of a trello board to keep track progress and outstanding tasks to be completed.
Table of Contents
- As a client, I want to order a pick-up of freight to be transported.
- As a client, I want to organise a delivery for freight.
- As a client, I would like to have an overview of all active jobs.
- As a client, I would like access to complete history of all jobs, previous, current and future.
- As a client, I would like to be able to view the status of orders.
- As a client, I need to be able to alter job information, before the pick-up window starts.
- As a client, I need to be able to add extra jobs to my previous jobs.
- As a client, I need the ability to search through history with specific queries.
- As a driver, I would like a list of all my jobs for the day.
- As a driver, I would like to be able to mark a job as complete, for my own use.
- As a driver, I would like to click on an address and be directed there.
- As an admin, I need to have access to all areas and aspects of the application.
- As an admin, I must be the only user with permissions to add new users.
- As an admin, I must be the only user with the ability to remove users.
- As an admin I must be the only user to alocate jobs to drivers.
- As an admin, I must be the only user to alter jobs during the pick up window
- MongoDB: noSQL database for flexibility.
- ExpressJs: back-end API.
- ReactJs: Component based design, front end development.
- NodeJs: Server-side application development.
Our back-end application is using node, express and mongo to store data. All the logic of the application is done in the back-end.
Dependencies Used:
- axios
- jwt-decode
- react
- react-collapsible
- react-dom
- react-router
- react-router-dom
- react-scripts
Our front-end uses react, strictly as a view to display data generated via the back-end.
Dependencies Used:
- body-parser
- dotenv
- express
- jsonwebtoken
- cors
- mongoose
- passport
- passport-jwt
- passport-local
- passport-local-mongoose
- nodemon