When SolarHome shared their project idea with openGeeksLab, I was really excited to be part of this world-changing venture. Everyone in our team wanted to play a role in the project because it wasn’t just another project, this was actually a project that supports SolarHome’s mission of extending electrical power supply to low-income customers in Southeast Asia.
I know 50% of the readers will skim through this report, so we put together some quick facts:
Project: Development of eCommerce web and mobile app.
Duration: 100 days
Technologies: Node.JS, koa2, ReactNative, React.JS, redux, react-router, and express. MongoDB, BABEL, mocha.
For readers who want to know the details, come with me.
Disclaimer: By the time you finish reading this report I would have started another project and it won’t be yours.
You must have read the case study of this project, the obstacles we faced during the development, how we surmounted it and the outcome. What the case study didn’t tell you was what happened during the development process that made this project a success that it is today.
The project had a basic requirement – Create a great e-commerce mobile and web-based product that will help our distributors of the solar systems manage cash turnovers.
Well, it depends on who you asked. The geeks answered yes and here is how we did it. For better comprehension, I divide the process into 5 phases.
1. The discovery phase
Our partnership with SolarHome started in October 2016 through their CTO Alex who corresponded with our Sales Manager Victoria. He indicated interest in our services and wanted to have a sit down to discuss his project idea in depth with us. On the day of the meeting, we showed up shut up and took some notes. Just kidding! We asked a lot of questions just to help us understand their business processes since we lacked the solar industrial expertise. They took their time to explain every aspect of their business to us. We had several other meetings to understand their target audience, users case scenarios and budget for the project. Based on the information we gathered during the meetings we created a user persona, drafted a project proposal, and submitted an estimation. Then we sat back and waited for their approval to set the whole process in motion.
2. The Design Phase
Within a couple of days, we got the approval to set the process in motion. Our partners already did the heavy lifting by providing us with the design. A project manager Anastasia was assigned immediately to marshal the project. In her usual style, she set up a war room (where we first solve the problem before writing codes) and in a few minutes had UX team in the room. They went through the design we received from SolarHome to make sure everything checks out. TGIF everyone left for the weekend and the sprint planning was shifted to Monday.
3. The sprint planning phase
No one likes Mondays, except developers. I was excited to come in on Monday to start the planning. When we met, together with SolarHome’s CTO we created an exhaustive project plan with clear milestones. Everyone clearly understood what we planned to work on, the sequence and when milestones will be reviewed. This wasn’t a nextgen tech development project but everyone had to be on their toes just to keep up with the pace.
Our main goal was to have a set of completed features at the end of every sprint. The grand rule was that we will have a stand-up meeting every morning in the war room to report what was accomplished the previous day, next steps and address any concern that might delay our timeline. That’s how we all stayed in sync.
4. The development phase
This was when the fun began for everyone in the team. Because now we get to actually start building what we spent weeks planning. With clear tasks assigned to every member, we started by first building an ordinary Node.js server that scales because bloating the app by introducing some SolarHome’s proprietary framework wasn’t part of our plans. As dependencies, we added express node module. We turned to MongoDB because it’s quite easy to use. The server was built on REST architecture using MongoDB as the base. For the verification of system identity, we used a token based on AES 256. Having put together this basic setup, the server was up and running on the developer’s box.
We configured the frontend using React Native Frameworks and Redux Library to point to the Node. js backend server for units, integration, and functional testing. Everything checked out and now was time to GET shIT DONE. Starting with the whiteboarding of all the usage scenarios, pinned down the REST endpoints, the schema and data model was designed, selected the best modules and each endpoint implementation started.
The following months we had all hands on deck with heads down writing just codes. You know the drill so we won’t go into the specifics.
Final phase UAT + Deployment
Apart from the regular unit, integration and functional tests we carried out every step of the way, we also ran a final UAT (user acceptance tests)
Our QA team were meticulous about the end-to-end testing because green energy was their thing and being part of a team creating a web and mobile app that supports the movement was an incredible opportunity. They performed a simulated users test to ensure that the final product was at the stable point. At the completion of all the phases, we had developed the best quality eCommerce web and mobile app for SolarHome’s distributors that will help them manage their turnovers. Then we were ready to release it but unfortunately, we didn’t have the right to, so we handed it over to SolarHome.
I’m not sure exactly when this report will be published before or after the release of the products by SolarHome. Nevertheless, keep an ear open for the announce by SolarHome.
Shout-out to everyone who took part in this project. We want your project to be our next, let’s link up to create something great.
Usually, we will ask you to leave your comment, but here we prefer you tell us what to change in our approach here to suit your next project with us. #wetheGeeks