Skip to content

Because, love too can be industrialized (Hive Helsinki)

Notifications You must be signed in to change notification settings

lifeBalance/matcha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

matcha

This project introduces you to a more advanced tool for creating your web applications: the micro-framework. You will have to create, in the language of your choice, a dating site (🍆 💦 🍑).

image

Reflection

Can't believe it, but it's done. Never thought this project was gonna require such amount of effort. On paper it was supposed to be done in one month, but no way someone without previous full-stack web development experience can achieve that. Things I take home:

  • Pretty decent knowledge of the SPA paradigm.
  • Realization that project based learning is what really works. The way of 42 is a bit painful, but what doesn't kill you makes you stronger.
  • Little bit of ptsd 😻 (but I've been told by other matcha survivors, it only lasts a couple of days).

image

My Approach: Single-page application

Since in my previous project I used the MVC software architectural pattern, this time I wanted to test another different but nowadays popular approach: SPA (short for Single-page application). The intention behind this choice was to become familiar with the most common paradigms used today in Web development.

In an SPA, a page refresh almost never occurs; instead, all necessary HTML, JavaScript, and CSS code is downloaded once, the very first time the user loads the site. From there on, all user interaction is handled by a modern JavaScript framework, which dynamically rewrites the web page, with new data retrieved from the web server.

In a SPA, all data interchanges with the server are done using Ajax. The data itself is encoded into JSON strings before being sent, and decoded on each end once received.

So the big picture for this project can be described in two parts:

  • A backend web API, made from scratch using PHP.
  • A backend web API, made using Express.js (tried to keep it RESTful, but I may have let Mr. Fielding down 😓).
  • A JS framework in the frontend to take care of the rest. This time I went with React.

Contents

Below I grouped in sections the personal notes I took while working on this project:

TODO

  • Implement advance search/filters.
  • Infinite scroll would be nice.
  • Fix the scroll up, in profile list, when new users are added to state.
  • Give it a go to https, so we can use Secure and SameSite=None; also for setting properly the refresh token in the hard cookie.
  • Eliminate duplication in the models (Account, Settings, Profiles basically deal with the same thing).
  • Update these notes!

◀️🏠▶️

About

Because, love too can be industrialized (Hive Helsinki)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages