Village Book Builders is an organization that connects students from the developing world with mentors in developed nations. Their recent growth has started to overwhelmed their business processes, and a new solution was necessary to create a scalable solution. Our team was enlisted to create a React front-end solution to allow Headmasters, Teachers, Mentors, and Mentees to manage their respective information, and serve as an MVP for further revisions. There was one fairly unique challenge, however.
We would have to mock our entire back-end to implement the site. The responsibility of delivering on our user stories without a testing and/or staging environment was daunting, but in the end our team was able to overcome the vast majority of the technical issues that this caused, and I believe that future integration will be simpler for having taken the approach that we did.
Using JSON Server to Mock Relational Databases
One of the first limitations that our team ran into was creating the relevant JSON objects to match. Sounds simple enough, right? Just create an object, and populate it with relevant properties. What about if you want to dynamically assign that object a foreign key, though? Eventually, we probably want to create some fetch requests that might rely on a property that we can’t just hard code into our objects.
Here we can see one approach to this problem, and the one we settled on using for our mocked back-end:
After creating the basic relationships between teachers, we can then assign any remaining objects randomly to help with testing purposes, and to better reflect real-world data.
Village Book Builders: Key Features Built
We were tasked with a variety of user stories, which ended up being part of a suite of features and pages:
- Teacher Registration
- Headmaster Approval of Teacher Profiles
- Mentor/Mentee Matching
- Editing capability for various account types
The features I worked on were generally well received. I feel like we have a good baseline for an accessible, and friendly website that will meet the needs of the various users and stakeholders. The future is going to depend on how well the back-end team will be able to integrate with our assumptions and hacks. Overall, however, I learned about working on a project where the parts of the whole aren’t available. There we no technical team to bounce ideas off of, and while this was a challenge, it also means that our assumptions as the front-end team had to be flexible and easy to fit into whatever direction the project might take from here.