Building taco
Get complete control over the design of your WordPress site in a matter of minutes. Go from draft to website in less time than ever before.
the idea
Needs and requierements
I need to create an app, and based on my experience I know that I will need at least this:
- A backend
- A native app
- A web site, PWA preferible
- A couple of landing pages
- Social media presence
- A database system
- An infrastructure
- Data managements (ETL, DM…)
- CI/CD tools
- Project management tools
The technical part
But also I need to go a step further and start thinking about technical needs like:
- RESTFull API
- Token based authentication, JWT is a nice option
- Social Login (Basically Google, FB and maybe tweeter), I need people to get full access fast.
- Images management (uploading and cropping)
- Gelocation, I need to show the distance to petitions and places
- Transactional and massive emailing
- Push notifications
The technOLOGY
And of course, I have to decide what technology I’m going to use. My recent background is stronger in PHP and Ionic 3, but my concern is to find the maximum number of collaborators as possible, so I decide the following:
- Backend: I can use PHP/Symfony as I have been doing for the last years. But, I think that I can find more help if I use something more popular, like Java or Python. This last one, is 5 times more popular than PHP (30% of market against 6%) and I really want to try it. So, Python it is!
- Framework: After some minutes of researching in sites like this one, I don’t have a clear view of using Django or Flask. I’m not the best developer and Django seems to have a larger community, tat’s something important to me as I tent to be stuck and I need to find help fast. Both seems to be the right decision, but I try first with Django and I like it. So, I keep it.
- Web development: well, I didn’t mention before that one of the reason tho choose Django is how insanely fast is to use forms, templates and anything you need to create your website. I give a try to Angular because I herd that is the best solution to build a PWA, but man, Django is so easy that I change my mind quickly. I decide to use Django for the web development rather than going for any other javascript framework.
- Database: I’m updating this point after 4 weeks of work. Initialy I started using MySQL because is like a Ford Fiesta. It has been here forever, is easy to use and it works fine. But, when I tried to include Geodjango I found problems with measuring distances. Since I’m using ORM it should be so hard to change the whole schema an move to PostgreSQL. And it wasn’t. Besides it seems to work better with bigger sizes and is the perfect combination for Django + Geolocation. So PSQL it is!
- App Development: I don’t think using native languages is the right choice if I want to have something fast. And I’m a little sick of Cordova (nothing wrong with that, but… I don’t feel it). Xamarin sounds like a mage on a cave, so my choice is clear, React Native. It is popular, reliable and the community is huge as well.
- Infrastructure: to be honest, this is not my strongest field of expertise, so I will buy the chipset VPS for the moment and think about this with a little more help. Of course I’m thinking in cloud services (AWS, Google Cloud or Azure)
- Transactional and massive emailing: I’ve always used Sendgrid, but I’m open to any other like Sendingblue or Mailgun. I will think about it when the moment arrives, but Sendgrid is OK.
- Push notifications: I will rely once more in Firebase. It works like a charm and is not even close to be expensive.
- CI/CD: if I have to be honest, I just know Jenkins and Bamboo, so this point is open and I’m happy to listen to any advice.
- Repository: nothing fancy, I will use GitHub and make the repository public.
The RESOURCES
And of course, I have to decide what technology I’m going to use. My recent background is stronger in PHP and Ionic 3, but my concern is to find the maximum number of collaborators as possible, so I decide the following:
The PrOJECT: DJANGO
Learn how to download the Django/Python project and get it ready in your local machine.
Image Source: WOCinTechChat, Icon Finder