Hey y'all. I'm Kev, a student at 42 Silicon Valley.
For one of the projects in school I had to build an Instagram-like web app. That means the next features:
- User sign up / login
- Email sending / link validation
- Taking pictures with webcam or uploading
- Using stickers
- Upload pictures to public gallery
- Be able to see, comment, like all pictures.
Here are some pictures of the final thing:
So for newbie that's a lot. I was able to finish it in 3 weeks and this are the main problems I faced (and how I tackled them). FYI: I used the MERN stack for this project.
Frontend? Backend? Database? I didn't know. I watched a lot of tutorials on Youtube and they all seemed to begin with the Frontend so that's what I did. Buuuuuut, I didn't like it. Maybe someone with more experience can prove me wrong but because I was using hardcoded data to test the components the design was not exactly what I needed.
When I finished the backend and started to deal with api calls and dynamic data (how many comments, how many likes) I had to tweak the frontend to make it work (double work). So next time I'll start with the backend.
What I was trying to do (users, images, comments) was very common so there were a lot of examples for it. I ended up using this schema:
Coming from C and algorithms to webdev is not hard exactly, but its just so very different. I knew Node was asynchronous, I thought I knew promises, but I didn't really understood the ramifications of that until I actually had to deal with api calls and passing them to the frontend.
Think asynchronous from the beginning and everything will be easier.
That was my experience and what I wish I knew before I started. Hopefully the second goes more smoothly.
What are your tips for new developers?