Team Function Force 6presentTrippy
Function Force 6 Demo Video
School Trips Simplified
Trippy offers a convenient way for schools, pupils and guardians to organise school trips.
We arrived at this idea after discussing what kinds of technologies we, as individuals would like to explore and how they might integrate with our project. Amongst the things we discussed were payment systems and open banking platforms/api's. Two ideas came of this. One was a budgeting app that would aggregate bank accounts and offer some budgeting tools. The other was this idea for a school trip tool that would allow parents an easy way to pay for trips... after further discussion we felt we could also include some other interesting features utilising more integrations like QR codes, maps, document signing etc.
On signing in, teachers can see a list of all the trips they are responsible for. They can view and edit details of the trip, including the description, date, location, cost and an inventory of items needed for the trip. They can also view/edit a list of students invited on the trip, and see which students have received consent from their guardians.
Teachers can also add news trip and choose students from a checklist to invite on the trip.
Parents, guardians and students can download the app, and can sign in using log in details provided by the school.
Parents and guardians can see a list of the trips that their child has been invited on, and can view all the details of the trip. They are also provided with a checklist of items needed for the trip which they can tick off as and when they have the items. When they are ready, they can give consent for their child to attend the trip by reading the terms of consent and clicking the consent button.
Students can see a list of the trips that they have been invited on. They can view the trip details and use the checklist of items needed for the trip.
Once the trip is underway, teachers can use Trippy to conduct quick headcounts. The student displays a unique QR code from within the app, which the teacher scans. The app then creates a timestamped record of each student and stores it against the headcount. The teacher can view a list of students unaccounted for, and can mark students present manually if, for any reason, the student is unable to present their QR code.
Teachers can also create markers on a map showing important meeting points or other locations of interest on the trip. During the trip, students can use Trippy's map feature to locate these markers, making sure they always know where they are supposed to be and how to get there.
The Team
Joe Gibson
Matt Proctor
Dave Greenland
Jordan McIntyre
Harry Robinson
Sam Barnes
Technologies
We used: React Native & Firebase
On the front end of our project, we use typescript which turns javascript into a strongly typed language.This allows us to develop our application faster to be able to see issues before our code was run and handle errors in a more predictable manner type. It is great for collaborative projects like this because it allows us to share functions between each other in a lot more predictable manner for building our applications.
We use Expo. Expo bundles all of our source codes and assets together and allows us to quickly prototype changes in real time and on an emulator, this was great for speeding up development as we weren't waiting around for constantly for things to build. Expo also gave us various cross platform libraries to access things such as phone camera data, access haptics and location data.
For creating our application interface we use React Native. This allowed us to apply everything we had learned with creating React components for the web and use those for designing our app. React Native component design was great for this project because it allows us to share components between each other to create a more cohesive design.
Along with React Native, we use React Native Paper. This is a component library built on Google's Material Design concepts. Paper is the most popular implementation of this for React Native.
For our back end, we use a firebase real time database. This is a cloud based no SQL database. The reason we went with this is because it was quite different from the SQL that we've had in the had used in the past and had some experience with. We also fancied the challenge of getting of getting our heads around a completely new system.
There a are a couple of advantages of using this database for mobile development, one of which is the fact that it keeps a local copy of itself on every device so even if there's no internet connection, or a poor connection, the app still has access to the database.
The real time database also easily integrates with Firebase Auth which we use to handle all of our user logins. This is really important for our application because when working with Children security is an absolute top priority so handing over the authentication system to a platform like Firebase is a good move.
Challenges Faced
Selecting tech that worked well together, scope creep, time management some poor documentation and Git merge conflicts.