Today we are in conversation with Airesh Bhat and Abhijeet Viswa from the Smart Campus team. They talk about what it took to make an app of this caliber, and guide those of us who want to explore the option of app development.
The Smart Campus team:
Backend: Vaibhav Balloli, Abhijeet Viswa, Rohit Dwivedula, Maneesh Sistla, Ravi Bharadwaj
Frontend: Airesh Bhat, Aayush Jain
UI Designers: Vishal Prabhu, Aayush Jain
How did the idea of Smart Campus come about?
The idea of going cashless came into practice in 2014, when our seniors first developed it. It initially started off as a kiosk where students had to scan their ID card, place an order and then confirm it with their finger print. The backend was made by our seniors as well, so while making the app we had a basic idea of how the framework of the backend would be. Unfortunately, due to a few bugs, faulty hardware and the inability to accommodate the newer batches, the old kiosk system had to be replaced. It was then that we shifted to a mobile application built on the same backend. Although the app ran successfully for a year, the SmartCampus members spent that year entirely on managing the huge codebase which led us to scrap the entire thing and rebuild, and this time for both android and iOS users. The app which you have right now was made in two and a half months, over the summer of 2019.
What was the app created on?
There are 3 parts that go into making an app; the frontend, the backend and the UI/UX. The backend is made using a framework called Django which is built on python. Django provides a platform to maintain the students' data-base and handle requests. The front end was built on ReactNative. You have a framework which lets you code in JavaScript and once the code is built it can be used for both iOS and Android. ReactNative is a simple to learn intuitive software for app development and that's why we chose it.
How can interested students learn app development?
To be honest, there are no fixed resources that you can learn from. A variety of resources can be found online, ranging from e-books, videos and online courses. Initially figure out what you want to do and decide whether it is the coding that you like or the UI/UX because this will help narrowing your approach towards learning. If you are further interested in ReactNative there is a post on the Smart Campus blog where you can find a few tutorials which can help you get started. If you want to try out Android Development then there is a CRUx summer group which has a lot of resources and tiny tutorials. Again, there is no ideal way to learn, it just comes from persistently reading and Googling by yourself as well.
How did you guys start off?
Airesh: I learned mostly through YouTube videos. I had a purpose about why I wanted to do this, so when I joined Smart Campus, my aim was to work on the cashless system and make it an easier process. I had done a project before as well, but I learnt ReactNative just so that the app could be accessible to both iOS and Android users. I had done JavaScript and I was into web design before this, so I had worked on ReactJS for web design, which made the jump to ReactNative easier.
Viswa: I did not start with python initially. I learnt python just for the inductions of Smart Campus in my 1-2. What worked for me in the beginning were the YouTube tutorials. I found a couple of books in my cousin's place which I picked up and read. I tried finding small projects and working on them, trying to emulate it. Basically just playing around with code snippets which I found online worked as well.
What tips do you have for non coders?
CS students do have a few courses but that doesn't necessarily mean that they would be able to work on projects. At the end of the day it's something that you would have to do on your own and you'd have to make time for that. There is no course any college offers that enables you to create an app from scratch. Projects are a great way to put your skills to practical use and at the end of that day this would add to your resume as well. The bottomline is that you need to balance acads and this. Just make sure you have commitment and do the learning religiously. Most of us quit before the idea is complete. One must see through the entire process of building something.
If a student has an app idea how do you think he should go about it?
There are 2 types of apps; a Progressive App and a Native App:
Progressive web app: So first you would need to make a website using templates available on websites like Wix. You then use another progressive app development website like PWA Builder which takes the URL of your website and makes an app out of it. This works for basic apps and that's the easiest way to go.
Native app: Native apps provide more options and features to users. You can make use of the features of your phone like maps, the seek bar for volume regulation etc. The framework nowadays is very intuitive and easy to understand, so it's not really that hard to learn app development. Softwares like ReactNative make things easier and it gives an added advantage of developing simultaneously for both Android and iOS.
Another way is to outsource and freelance your work to people who are willing to help or be part of your idea.
From where can one get project ideas?
There are still a few things that need improvement on campus as well as in our personal lives. Take inspiration for these general life problems and work on projects that provide a solution. If you are keen on developing your newly learnt skill you can join the smart campus teams as well. This is the link where you can get ideas for a new app and we would be happy to help you out with it.
Do you recommend any courses?
There is one udemy course for React Native that I found useful and this is the link for it.
Very important point to remember for coders/non-coders alike:
At the end of the day it's about how flexible you are as a programmer and things like app development fall into the broader umbrella of programming. The tasks that companies give you are mainly based on solving various problems and not restricted to app development. Being a good coder opens up both frontend and backend options as well as it makes pivoting to different fields that much easier. Be good at competitive code, it helps you get a job as well as develop skills for solving problems.
Disclaimer: The points given above are the views and steps taken by the individual. They are not fixed steps and guideline to base your college upon. Our hope is to inspire students so they can take the necessary steps here after. We hope you like it!
Writen By: Manish Patil
Comments