THE FUTURE MARKETACADEMY
Your classroomRoom 07 · Tech Lab
School of Data & Tech

Full-Stack Basics: mga server, database at deployment

Step 7 of 8 in Tech Lab

Next in your path: 7.9.3 Cloud Architecture: reliable, secure design

What you'll be able to do
  • Ipaliwanag kung paano nagtutulungan ang browser, server at database, at sundan ang isang request mula click hanggang database at pabalik.
  • Bumuo ng JSON API gamit ang Node.js na nagche-check ng input, naglilimita sa laki ng request at nagbabalik ng tamang status code.
  • Mag-imbak ng data sa SQL database gamit ang prepared statement, para hindi kailanman mabago ng text ng user ang SQL mo.
  • Magdagdag ng sign-up at login na may maayos na na-hash na mga password at patas, pangkalahatang mga error message.
  • Panatilihing naka-login ang mga tao gamit ang ligtas na session cookie, at tiyaking ang bawat tao ay makakakita at makakapagbago lang ng sarili nilang data.
  • Sumulat ng mga automated test para sa happy path at sa mga edge case, at patakbuhin ang mga ito gamit ang isang command.
  • I-deploy ang app na may mga setting sa environment variable, at ipaliwanag ang mga limitasyon ng libreng host.

Nasubukan ang lahat ng code sa course na ito gamit ang Node.js 22 sa isang computer: pumasa ang mga automated test sa Lesson 6 (9 sa 9), at tunay na pinatakbo at tinawag ang server. Mga module lang na built-in sa Node.js ang ginagamit ng app, kaya walang kailangang i-install na dagdag. Kailangan mo ng computer, code editor, terminal, Node.js 22.13 o mas bago, GitHub account at internet connection. Tinuturuan ka ng course na ito na protektahan ang sarili mong app (pagdepensa lang).

Words in this course 61Open the Vocabulary Hall
01

Paano nagkakabit-kabit ang isang full-stack app

In simple words

Ang restaurant ay may tatlong bahagi. Ang dining room ang front end: ang nakikita ng mga bisita. Ang kusina ang server: tumatanggap ito ng order at nagluluto. Ang pantry ang database: kung saan nakatago ang pagkain. Hindi kailanman pumapasok ang bisita sa pantry. Humihingi siya sa waiter, kukunin ng kusina ang kailangan, at babalik ang isang plato.

Bago ang course na ito: Front-End Development: responsive layouts and JavaScript apps (course 7.7.2). Dapat marunong ka nang gumawa ng responsive na page, magsulat ng JavaScript na nagre-render ng data, tumawag ng API gamit ang fetch, mag-handle ng loading at error state, at mag-publish ng static site. Hanggang ngayon, server ng iba ang sumasagot sa fetch mo. Sa course na ito, ikaw mismo ang bubuo ng server na iyon, pati database at login. Ang proyekto natin ay "Study Notes": nagsa-sign up ang mga tao, nagla-log in at nagtatago ng pribadong mga note.

Key facts
  • Front end = HTML, CSS at JavaScript na tumatakbo sa browser. Back end = code na tumatakbo sa server. Database = kung saan ligtas na nakatago ang data sa pagitan ng mga pagbisita. Ang "Full stack" ay nangangahulugang kaya mong gumawa sa lahat ng tatlo.
  • Nag-uusap ang browser at server gamit ang HTTP. Nagpapadala ang browser ng request (isang method gaya ng GET o POST, isang path gaya ng /api/notes, mga header at minsan isang body). Nagbabalik ang server ng response (isang status code, mga header at isang body).
  • Pinapatakbo ng Node.js ang JavaScript sa labas ng browser. Ang built-in nitong node:http module ay kayang gumawa ng web server nang walang dagdag na package.
  • Ang server ay nakikinig sa isang port. Sa sarili mong computer, ang localhost:3000 ay nangangahulugang "ang computer na ito, port 3000".
  • Ang API na sumasagot sa JSON ay nagpapahintulot sa anumang front end (web page, phone app, test script) na gamitin ang parehong server.
  • Ang Node.js 22.13 at mas bago ay may kasamang node:sqlite, isang built-in na SQLite database. Minamarkahan pa rin ito ng Node.js documentation bilang experimental sa mga version na iyon, kaya naglalabas ang Node ng "ExperimentalWarning" kapag ginamit mo ito. Inaasahan ito sa course na ito.
  • Huwag kailanman magtiwala sa browser. Kahit sino ay maaaring magpadala ng anumang request sa server mo gamit ang mga tool maliban sa page mo. Ang lahat ng mahalagang check (mga patakaran sa input, sino ang may-ari ng ano) ay dapat tumakbo sa server.
Halimbawa (ang una mong server, nasubukan)
const http = require("node:http");

const server = http.createServer(function (req, res) {
 if (req.method === "GET" && req.url === "/health") {
  res.writeHead(200, { "Content-Type": "application/json" });
  res.end(JSON.stringify({ ok: true }));
  return;
 }
 res.writeHead(404, { "Content-Type": "application/json" });
 res.end(JSON.stringify({ error: "Not found" }));
});

server.listen(3000, function () {
 console.log("Open http://localhost:3000/health");
});

Resulta ng test: ang GET /health ay sumagot ng 200 na may {"ok":true}; ang anumang ibang path ay sumagot ng 404 na may {"error":"Not found"}.

Step by step
  1. I-install ang Node.js mula sa nodejs.org (piliin ang LTS version), tapos i-type ang node --version sa terminal. Kailangan mo ng 22.13 o mas bago.
  2. Gumawa ng folder na study-notes at buksan ito sa code editor at sa terminal mo.
  3. Gumawa ng hello.js at i-paste ang halimbawang code.
  4. Patakbuhin ang node hello.js. Dapat makita mo ang "Open localhost:3000/health".
  5. Buksan ang address na iyon sa browser mo. Dapat makita mo ang {"ok":true}.
  6. Subukan ang localhost:3000/anything. Dapat makuha mo ang sagot na "Not found".
  7. Ihinto ang server gamit ang Ctrl+C sa terminal.
  8. Check: sa DevTools, Network tab, nagpapakita ang /health request ng status 200 at ang isa ay 404 (maaaring magkaiba ang mga pangalan depende sa version).
Watch on YouTube
How to create a simple HTTP server in Node.jsProgrammingKnowledge · YouTube · youtube.com

Videos by other creators on YouTube, for reference. They are not made by or affiliated with The Future Market.

LESSON 01Paano nagkakabit-kabit ang isang full-stack app
LESSON 01 / ANIMATED LESSON / ENGLISH VOICE00:00 / 01:00
Read the video script
[Host] "Ang front end ay ang dining room. Ang server ay ang kusina. Ang database ay ang pantry."
[Screen: nagpapadala ang browser ng GET /health, sumasagot ang server ng 200 na may JSON] "Nagpapadala ng request ang browser. Nagpapadala ng response ang server na may status code at body."
[Screen: tumatakbo ang hello.js sa terminal] "Sampung linya ng Node.js at mayroon ka nang sariling server sa localhost."
[Text on screen: Huwag magtiwala sa browser] "Isang patakaran para sa buong course: ang server ang nagche-check ng lahat, dahil kahit sino ay puwedeng magpadala rito ng request."
Try it now

Patakbuhin ang unang server. Magdagdag ng pangalawang route, GET /time, na sumasagot ng kasalukuyang oras bilang JSON. Tapos iguhit ang larawan ng restaurant para sa Study Notes: lagyan ng label ang dining room, kusina at pantry gamit ang mga totoong bahagi (page, Node.js server, SQLite file).

ClaudeStuck? Copy a ready-made prompt for Claude

Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.

For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.

I'm learning "Full-Stack Basics: mga server, database at deployment" on The Future Market. Lesson 1: "Paano nagkakabit-kabit ang isang full-stack app".

What the lesson teaches:
- Front end = HTML, CSS at JavaScript na tumatakbo sa browser. Back end = code na tumatakbo sa server. Database = kung saan ligtas na nakatago ang data sa pagitan ng mga pagbisita. Ang "Full stack" ay nangangahulugang kaya mong gumawa sa lahat ng tatlo.
- Nag-uusap ang browser at server gamit ang HTTP. Nagpapadala ang browser ng request (isang method gaya ng GET o POST, isang path gaya ng /api/notes, mga header at minsan isang body). Nagbabalik ang server ng response (isang status code, mga header at isang body).
- Pinapatakbo ng Node.js ang JavaScript sa labas ng browser. Ang built-in nitong node:http module ay kayang gumawa ng web server nang walang dagdag na package.
- Ang server ay nakikinig sa isang port. Sa sarili mong computer, ang  ay nangangahulugang "ang computer na ito, port 3000".
- Ang API na sumasagot sa JSON ay nagpapahintulot sa anumang front end (web page, phone app, test script) na gamitin ang parehong server.
- Ang Node.js 22.13 at mas bago ay may kasamang node:sqlite, isang built-in na SQLite database. Minamarkahan pa rin ito ng Node.js documentation bilang experimental sa mga version na iyon, kaya naglalabas ang Node ng "ExperimentalWarning" kapag ginamit mo ito. Inaasahan ito sa course na ito.
- Huwag kailanman magtiwala sa browser. Kahit sino ay maaaring magpadala ng anumang request sa server mo gamit ang mga tool maliban sa page mo. Ang lahat ng mahalagang check (mga patakaran sa input, sino ang may-ari ng ano) ay dapat tumakbo sa server.

The exercise I'm working on:
Patakbuhin ang unang server. Magdagdag ng pangalawang route, GET /time, na sumasagot ng kasalukuyang oras bilang JSON. Tapos iguhit ang larawan ng restaurant para sa Study Notes: lagyan ng label ang dining room, kusina at pantry gamit ang mga totoong bahagi (page, Node.js server, SQLite file).

I'm stuck. Please:
1. Explain the main idea in plain, simple words with one everyday example.
2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step.
3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Paano nagkakabit-kabit ang isang full-stack app" from the course "Full-Stack Basics: mga server, database at deployment".

Here's what the lesson says:
Ang restaurant ay may tatlong bahagi. Ang dining room ang front end: ang nakikita ng mga bisita. Ang kusina ang server: tumatanggap ito ng order at nagluluto. Ang pantry ang database: kung saan nakatago ang pagkain. Hindi kailanman pumapasok ang bisita sa pantry. Humihingi siya sa waiter, kukunin ng kusina ang kailangan, at babalik ang isang plato.

The activity:
Patakbuhin ang unang server. Magdagdag ng pangalawang route, GET /time, na sumasagot ng kasalukuyang oras bilang JSON. Tapos iguhit ang larawan ng restaurant para sa Study Notes: lagyan ng label ang dining room, kusina at pantry gamit ang mga totoong bahagi (page, Node.js server, SQLite file).

Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words.
Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.
Open Claude
Sources
My notes
02

Bumuo ng JSON API

This lesson is part of full access: every course and every level for one payment.

03

Mag-imbak ng data sa database

This lesson is part of full access: every course and every level for one payment.

04

Ligtas na sign-up at login

This lesson is part of full access: every course and every level for one payment.

05

Mga session, cookie at kung sino ang makakakita ng ano

This lesson is part of full access: every course and every level for one payment.

06

I-test nang awtomatiko

This lesson is part of full access: every course and every level for one payment.

07

I-deploy ito, at alamin ang mga limitasyon nito

This lesson is part of full access: every course and every level for one payment.

++

Final project

This lesson is part of full access: every course and every level for one payment.

??

Quiz

  1. Sa larawan ng restaurant, ano ang front end, ang server at ang database?

  2. Bakit dapat tumakbo sa server ang bawat mahalagang check?

  3. Aling status code ang nangangahulugang "created", at alin ang "hindi naka-login"?

  4. Bakit nililimitahan ng app ang laki ng request body?

  5. Ano ang pangunahing depensa laban sa SQL injection?

  6. Bakit hina-hash natin ang mga password sa halip na i-encrypt?

  7. Ano ang ginagawa ng salt?

  8. Ano ang dapat sabihin ng pumalyang login?

  9. Ano ang ginagawa ng HttpOnly cookie attribute?

  10. Ano ang dapat gawin ng logout sa server?

  11. Aling panganib ang numero 1 sa OWASP Top 10 (2025), at paano ito binabantayan ng app?

  12. Bakit pang-demo lang ang SQLite file sa libreng host na may ephemeral filesystem?

EX

Final exam

This lesson is part of full access: every course and every level for one payment.

CE

Certificate

This lesson is part of full access: every course and every level for one payment.