1️⃣9️⃣ What does dotenv.config() do?
Anonymous Quiz
33%
a) Starts the server
33%
b) Loads environment variables into process.env
33%
c) Encrypts data
0%
d) Creates .env file
Forwarded from STEM with Murad 🇪🇹
Why So Many People Quit Coding (Even When They Love It)
Let’s be honest.
Nobody starts learning how to code and thinks,
“Yay! I can’t wait to be frustrated and overwhelmed!” 😩
But somewhere between writing your first hello world and facing your 10th error in one hour…
People start to tap out.
Here’s why people give up on their coding journey:
1. They want it fast, not deep.
They want to “learn fast and get a tech job in 3 weeks.”
But coding is a process. Not magic.
You have to understand the logic, not just memorize tutorials.
2. Tutorial Hell is real.
They hop from one YouTube video to the next without building anything.
It feels productive, but it's just digital procrastination.
3. Impostor syndrome creeps in.
They compare themselves to someone on LinkedIn who built an app in 1 month.
They forget that they’re on chapter 2, comparing it to someone else’s chapter 20.
4. No accountability.
When nobody is checking in on you, it’s easy to “rest” for one day...
Then that day becomes a month.
Then the dream dies a quiet death.
5. They don’t know why they’re learning.
If your only reason is “tech pays well,”
the first moment it gets hard, you’ll start asking yourself:
“Is this even worth it?”
But when you have a clear WHY you push through the discomfort.
Coding will stretch you. It will test your patience.
But it will also grow you. It will open doors.
Not everyone who starts finishes.
But everyone who finishes will tell you it was 1000% worth it.
So, before you quit, ask yourself:
Did I really give it my all… or did I give up when it got uncomfortable?
You’re not behind.
You’re not too late.
You just need to start again with clarity and consistency.
💻 Keep going. The future still needs your code.
Let’s be honest.
Nobody starts learning how to code and thinks,
“Yay! I can’t wait to be frustrated and overwhelmed!” 😩
But somewhere between writing your first hello world and facing your 10th error in one hour…
People start to tap out.
Here’s why people give up on their coding journey:
1. They want it fast, not deep.
They want to “learn fast and get a tech job in 3 weeks.”
But coding is a process. Not magic.
You have to understand the logic, not just memorize tutorials.
2. Tutorial Hell is real.
They hop from one YouTube video to the next without building anything.
It feels productive, but it's just digital procrastination.
3. Impostor syndrome creeps in.
They compare themselves to someone on LinkedIn who built an app in 1 month.
They forget that they’re on chapter 2, comparing it to someone else’s chapter 20.
4. No accountability.
When nobody is checking in on you, it’s easy to “rest” for one day...
Then that day becomes a month.
Then the dream dies a quiet death.
5. They don’t know why they’re learning.
If your only reason is “tech pays well,”
the first moment it gets hard, you’ll start asking yourself:
“Is this even worth it?”
But when you have a clear WHY you push through the discomfort.
Coding will stretch you. It will test your patience.
But it will also grow you. It will open doors.
Not everyone who starts finishes.
But everyone who finishes will tell you it was 1000% worth it.
So, before you quit, ask yourself:
Did I really give it my all… or did I give up when it got uncomfortable?
You’re not behind.
You’re not too late.
You just need to start again with clarity and consistency.
💻 Keep going. The future still needs your code.
❤4
🔥🔥 Project 7 — Job Listing Platform
👋 Hey Campers! Welcome to Project 7 🚀
I hope you’re doing well, staying consistent, and coding even when it feels hard 💪
You’ve come a LONG way — from basic JavaScript to Express and APIs.
Now it’s time to combine everything into a real-world style project.
This time, We’re building a simple job listing website, similar to platforms where people post jobs and others browse or apply-- Using HTML, CSS, JavaScript, Node.js, Express
➔Focus on logic, structure, and clarity, not perfection
🎯 Project Goal
To practice:
➞Backend logic with Express
➞CRUD operations (Create, Read, Update, Delete)
➞Handling users and jobs
➞Frontend ↔ Backend communication
➞Clean UI using plain HTML & CSS
➞Project organization and debugging
🧩 Core Features (Must Have)
👤 1️⃣ User Accounts (Simple Version)
Users should be able to:
➤Create an account (username + email is enough)
➤Log in (no advanced auth yet — keep it simple)
➤Stay logged in during the session (basic logic)
💡 Think: “Who is using my app right now?”
🧑💻 2️⃣ Job Posting
Logged-in users can:
➤Post a new job
Each job should include:
➞Job title, Company name, Job description, Location (optional),Date posted
➤Each job should belong to one user.
📋 3️⃣ Job Listings Page
All users (even not logged in) can:
➤See a list of all jobs
➤View job details clearly
➤Understand who posted the job
✏️ 4️⃣ Update & Delete Jobs
Only the job owner can:
➡Edit their job
➡Delete their job
💡 Think carefully about:
“Who is allowed to do what?”
🔍 5️⃣ Backend API
Your backend should support:
➜Creating users
➜Creating jobs
➜Fetching all jobs
➜Fetching single job
➜Updating job
➜Deleting job
Use:
➙File-based storage (JSON) for now
➞Clean error messages
🌈 UI Expectations (Frontend)
your UI should:
➙Be easy to understand
➞Have clear buttons and forms
➞Show success & error messages
➞Not look cluttered
Examples of pages:
➣Home / Job List
➣Login / Register
➣Post Job
➣My Jobs
💡 Simple ≠ ugly
🌱 Optional Features (Bonus — If You Can)
➔Search jobs by title or company
➔Filter jobs by location
➔Show “My Jobs” page
➔Show number of jobs posted
➔Confirmation before deleting a job
🧠 Hints 😃
➣Think about data structure before coding
➣Decide:
➞How users are stored
➞ How jobs reference users
➞Build backend routes first
➞Then connect frontend
➞Test each feature step by step
Small steps → big progress.👌👌
🐞 Debugging Checklist (VERY IMPORTANT)
Before asking for help, check:
✅Server starts without crashing
✅ Routes respond correctly
✅ JSON files are valid
✅ Data saves after refresh
✅ Only owners can edit/delete jobs
✅ Errors are handled cleanly
✅UI updates after actions
✅ No duplicate IDs
✅Console logs make sense
If something breaks: 👉 slow down
👉 log values
👉 isolate the problem
This is how real developers work.
When you’re done building your project:
💥 Push to GitHub ✅
💥 Deploy with GitHub Pages / Netlify 🌍
💥 Share your repo + live demo with us 🎉
💥invite a friend,
and as always —
💥stay well, stay curious, and stay coding ✌️
👋 Hey Campers! Welcome to Project 7 🚀
I hope you’re doing well, staying consistent, and coding even when it feels hard 💪
You’ve come a LONG way — from basic JavaScript to Express and APIs.
Now it’s time to combine everything into a real-world style project.
This time, We’re building a simple job listing website, similar to platforms where people post jobs and others browse or apply-- Using HTML, CSS, JavaScript, Node.js, Express
➔Focus on logic, structure, and clarity, not perfection
🎯 Project Goal
To practice:
➞Backend logic with Express
➞CRUD operations (Create, Read, Update, Delete)
➞Handling users and jobs
➞Frontend ↔ Backend communication
➞Clean UI using plain HTML & CSS
➞Project organization and debugging
🧩 Core Features (Must Have)
👤 1️⃣ User Accounts (Simple Version)
Users should be able to:
➤Create an account (username + email is enough)
➤Log in (no advanced auth yet — keep it simple)
➤Stay logged in during the session (basic logic)
💡 Think: “Who is using my app right now?”
🧑💻 2️⃣ Job Posting
Logged-in users can:
➤Post a new job
Each job should include:
➞Job title, Company name, Job description, Location (optional),Date posted
➤Each job should belong to one user.
📋 3️⃣ Job Listings Page
All users (even not logged in) can:
➤See a list of all jobs
➤View job details clearly
➤Understand who posted the job
✏️ 4️⃣ Update & Delete Jobs
Only the job owner can:
➡Edit their job
➡Delete their job
💡 Think carefully about:
“Who is allowed to do what?”
🔍 5️⃣ Backend API
Your backend should support:
➜Creating users
➜Creating jobs
➜Fetching all jobs
➜Fetching single job
➜Updating job
➜Deleting job
Use:
➙File-based storage (JSON) for now
➞Clean error messages
🌈 UI Expectations (Frontend)
your UI should:
➙Be easy to understand
➞Have clear buttons and forms
➞Show success & error messages
➞Not look cluttered
Examples of pages:
➣Home / Job List
➣Login / Register
➣Post Job
➣My Jobs
💡 Simple ≠ ugly
🌱 Optional Features (Bonus — If You Can)
➔Search jobs by title or company
➔Filter jobs by location
➔Show “My Jobs” page
➔Show number of jobs posted
➔Confirmation before deleting a job
🧠 Hints 😃
➣Think about data structure before coding
➣Decide:
➞How users are stored
➞ How jobs reference users
➞Build backend routes first
➞Then connect frontend
➞Test each feature step by step
Small steps → big progress.👌👌
🐞 Debugging Checklist (VERY IMPORTANT)
Before asking for help, check:
✅Server starts without crashing
✅ Routes respond correctly
✅ JSON files are valid
✅ Data saves after refresh
✅ Only owners can edit/delete jobs
✅ Errors are handled cleanly
✅UI updates after actions
✅ No duplicate IDs
✅Console logs make sense
If something breaks: 👉 slow down
👉 log values
👉 isolate the problem
This is how real developers work.
When you’re done building your project:
💥 Push to GitHub ✅
💥 Deploy with GitHub Pages / Netlify 🌍
💥 Share your repo + live demo with us 🎉
💥invite a friend,
and as always —
💥stay well, stay curious, and stay coding ✌️
Forwarded from Edemy
Things Feel Hard Until You Actually Start
In tech, many things sound difficult long before we ever try them.
Before learning Docker, I already believed it would be complicated
not because I had worked with it, but because of how people talked about it.
Just hearing terms like image, container, and DevOps workflows made it feel heavy.
But once I started learning Docker and using it in a project, it was far more understandable than I expected.
Most of the confusion faded once I stopped listening and started doing.
This isn’t only about Docker.
The same thing happens for other terms.
From the outside, things look overwhelming.
Once you’re inside them, they turn into clear steps you can work through.
The real issue is that many juniors never reach that point.
They stop at the idea of difficulty.
We often hear experienced engineers talk in advanced terms,
and we forget that they also started by not understanding much.
Fear usually comes from: not starting, overthinking, and comparing yourself to people who are further along
So the solution is to start even if things are not clear yet.
If you’re a junior:
don’t let technical language scare you
don’t wait until everything feels clear
start small and learn as you go
You don’t need full clarity to begin.
You gain clarity by starting.
Most projects look difficult
until you sit down and actually work on them.
That’s where learning really happens.
@edemy251
In tech, many things sound difficult long before we ever try them.
Before learning Docker, I already believed it would be complicated
not because I had worked with it, but because of how people talked about it.
Just hearing terms like image, container, and DevOps workflows made it feel heavy.
But once I started learning Docker and using it in a project, it was far more understandable than I expected.
Most of the confusion faded once I stopped listening and started doing.
This isn’t only about Docker.
The same thing happens for other terms.
From the outside, things look overwhelming.
Once you’re inside them, they turn into clear steps you can work through.
The real issue is that many juniors never reach that point.
They stop at the idea of difficulty.
We often hear experienced engineers talk in advanced terms,
and we forget that they also started by not understanding much.
Fear usually comes from: not starting, overthinking, and comparing yourself to people who are further along
So the solution is to start even if things are not clear yet.
If you’re a junior:
don’t let technical language scare you
don’t wait until everything feels clear
start small and learn as you go
You don’t need full clarity to begin.
You gain clarity by starting.
Most projects look difficult
until you sit down and actually work on them.
That’s where learning really happens.
@edemy251
❤1
Forwarded from Edemy
Real experience doesn’t come from watching more tutorials. It comes from building, thinking, and solving real problems. Tutorials are useful at the beginning, but staying there too long gives a false sense of progress. You may understand concepts, but you don’t truly learn until you apply them on your own.
The best way to gain experience is to start with a problem you actually see or face. It can be something small, a task you repeat every day, a manual process, or a tool you wish existed. Start there. Google similar ideas, read how others solved it, and then try to build your own version. It doesn’t need to be perfect. What matters is that the decisions are yours.
When you work on your own project, learning becomes real. You think about structure, logic, edge cases, and how things behave in real situations. You get stuck, search for answers, read documentation, try again, and improve. This is exactly how professional developers work.
Spending too much time watching tutorials without writing code keeps your hands clean, but experience comes when your hands get dirty. Writing imperfect code, fixing it, and improving it over time teaches you far more than any video can.
Experience is built by doing real work, not by waiting to feel ready. Start small, build something real, and learn along the way.
@edemy251
The best way to gain experience is to start with a problem you actually see or face. It can be something small, a task you repeat every day, a manual process, or a tool you wish existed. Start there. Google similar ideas, read how others solved it, and then try to build your own version. It doesn’t need to be perfect. What matters is that the decisions are yours.
When you work on your own project, learning becomes real. You think about structure, logic, edge cases, and how things behave in real situations. You get stuck, search for answers, read documentation, try again, and improve. This is exactly how professional developers work.
Spending too much time watching tutorials without writing code keeps your hands clean, but experience comes when your hands get dirty. Writing imperfect code, fixing it, and improving it over time teaches you far more than any video can.
Experience is built by doing real work, not by waiting to feel ready. Start small, build something real, and learn along the way.
@edemy251
👍1
🎄✨ Happy Christmas, Campers! ✨🎄
May your code compile on the first try, your bugs take a holiday, and your merges be conflict-free.😅
Wishing you a holiday with no errors and infinite joy! 🎁💻🎅
May your code compile on the first try, your bugs take a holiday, and your merges be conflict-free.😅
Wishing you a holiday with no errors and infinite joy! 🎁💻🎅
😁3
Forwarded from Birhan Nega
If you’re a student struggling with self-discipline, time management, or staying consistent, The Art of Laziness is a book worth reading. It doesn’t teach you to avoid work—instead, it helps you stop wasting time and energy. For students, the message is simple: focus on the right subjects, study with intention, remove distractions, and build disciplined routines. When your effort is structured, results follow without burnout.
You can download PDF here
You can download PDF here
❤1
Forwarded from Edemy
Things You Should Do as a Beginner Developer
1. Focus on fundamentals, not memorizing syntax
As a beginner, you don’t need to memorize every keyword or function.
Start by understanding the basics: how things work, why they work, and how different pieces connect.
Even senior developers don’t remember everything, they regularly check documentation and references.
2. Build a project
Projects are where real learning happens.
When you build something, you face real problems, real errors, and real decisions.
That experience teaches you more than watching tutorials or copying code.
3. Get comfortable using documentation
Reading documentation is a core developer skill.
You’re not expected to know everything by memory.
What matters is knowing where to look and how to understand what you find.
4. First start with one technology practice enough to gain confidence
Jumping between tools can slow your progress.
Spending enough time with one language or framework helps you build problem-solving skills and confidence.
Those skills often carry over when you explore other technologies later.
5. Searching is part of the job
Every developer searches for answers errors, examples, and best practices.
The skill isn’t knowing everything.
It’s knowing how to find and apply information.
6. Accept bugs, confusion and stay consistent
Feeling confused or stuck is normal, especially at the beginning.
Progress doesn’t come from being perfect it comes from showing up regularly, even when things don’t make sense yet.
@edemy251
1. Focus on fundamentals, not memorizing syntax
As a beginner, you don’t need to memorize every keyword or function.
Start by understanding the basics: how things work, why they work, and how different pieces connect.
Even senior developers don’t remember everything, they regularly check documentation and references.
2. Build a project
Projects are where real learning happens.
When you build something, you face real problems, real errors, and real decisions.
That experience teaches you more than watching tutorials or copying code.
3. Get comfortable using documentation
Reading documentation is a core developer skill.
You’re not expected to know everything by memory.
What matters is knowing where to look and how to understand what you find.
4. First start with one technology practice enough to gain confidence
Jumping between tools can slow your progress.
Spending enough time with one language or framework helps you build problem-solving skills and confidence.
Those skills often carry over when you explore other technologies later.
5. Searching is part of the job
Every developer searches for answers errors, examples, and best practices.
The skill isn’t knowing everything.
It’s knowing how to find and apply information.
6. Accept bugs, confusion and stay consistent
Feeling confused or stuck is normal, especially at the beginning.
Progress doesn’t come from being perfect it comes from showing up regularly, even when things don’t make sense yet.
@edemy251
👍1
Forwarded from Chapi Dev Talks
Index for the JD
Backend Role: https://t.me/chapidevtalks/2454
Cyber Security: https://t.me/chapidevtalks/2455
Mobile Dev: https://t.me/chapidevtalks/2456
Technical Project manager https://t.me/chapidevtalks/2457
Product Owner: https://t.me/chapidevtalks/2458
UI/UX: https://t.me/chapidevtalks/2459
AI/ML Engineer: https://t.me/chapidevtalks/2461
Backend Role: https://t.me/chapidevtalks/2454
Cyber Security: https://t.me/chapidevtalks/2455
Mobile Dev: https://t.me/chapidevtalks/2456
Technical Project manager https://t.me/chapidevtalks/2457
Product Owner: https://t.me/chapidevtalks/2458
UI/UX: https://t.me/chapidevtalks/2459
AI/ML Engineer: https://t.me/chapidevtalks/2461
Telegram
Chapi Dev Talks
Backend Developer (Mid-Level or Senior) [3 persons]
Location: in Person
Type: Full-time
Salary: Negotiable (with a Good Compensation and great environment)
### About the Role
We are looking for 3 Mid-Level Backend Developers to join our growing engineering…
Location: in Person
Type: Full-time
Salary: Negotiable (with a Good Compensation and great environment)
### About the Role
We are looking for 3 Mid-Level Backend Developers to join our growing engineering…
Apologies for the pause this month; finals and projects have been overwhelming. We'll get started soon!
⚡2
🚀 Week 8 Day 8 — MongoDB Foundations & Environment Setup
Alright campers 🔥💙
Today we step into the database world — where your app stops being forgetful and starts having memory.
🌳 BIG IDEA — What Is MongoDB Really?
Think of your backend like a company:
➞Express = receptionist handling requests
➞Routes = departments
➞Controllers = workers doing tasks
➞MongoDB = warehouse where all records are stored
➤Without a database:
Your app lives only in RAM — like writing on water.
➤With MongoDB:
Your app writes on stone.
MongoDB is a NoSQL document database — which means it stores data as flexible documents instead of rigid tables.
🧱 1️⃣ MongoDB Ecosystem — The Tool Family
MongoDB is not just “one thing”. It’s like a kitchen with multiple tools.
🗄 MongoDB Server
The actual database engine running and storing data.
Like:
The warehouse building itself
🌍 MongoDB Atlas
Cloud-hosted MongoDB.
Like:
Renting a secure warehouse in the cloud instead of building one at home.
Good for:
➢deployment
➢teamwork
➢production apps
🧭 MongoDB Compass
Visual GUI for MongoDB.
Like:
Google Maps for your database — browse, search, edit visually.
💻 mongosh (MongoDB Shell)
Terminal interface.
Like:
Command center — type commands directly to DB.
Best for:
➥power users
➥scripting
➥debugging
🏠 2️⃣ Local MongoDB Installation — Why Local First?
Running MongoDB locally is like:
Learning to cook in your own kitchen
before cooking in a restaurant.
Why it matters:
➡faster
➡no internet dependency
➡safe experiments
➡no billing worries
Install Steps (Local)
Go to MongoDB Community Server download page → install → start service.
After install, MongoDB runs as a background service.
Test it:
Bash
If shell opens → MongoDB is running ✅
☁️ 3️⃣ MongoDB Atlas — Cloud Setup
Atlas = MongoDB hosted online.
Use Atlas when:
➛deploying apps
➛working in teams
➛need remote DB
➛need backups & scaling
Atlas Setup Flow
Think of Atlas like opening a bank account:
Step 1 — Create account
Step 2 — Create cluster
Cluster = database machine group
Step 3 — Create DB user
Username + password for access
Step 4 — Network access
Allow your IP address
Step 5 — Get connection string
Looks like:
This is your database address — like a phone number.
🧭 4️⃣ MongoDB Compass — Visual Explorer
Compass is beginner heaven.
Instead of typing commands, you:
click
browse
edit
search
insert documents
Like:-File Explorer for your data warehouse.
Connect with Compass
Paste connection string → connect → explore DB.
You can:
➤create database
➢create collection
➢insert document
➢edit document
➢filter data
💻 5️⃣ MongoDB Shell — mongosh Basics
mongosh = talking directly to MongoDB.
Like chatting with the warehouse manager.
Start:
Bash
Js
MongoDB creates it only when first data is inserted.
Why?
Because MongoDB is lazy by design — it doesn’t create empty containers.
Create collection & insert document
Js
Now DB + collection exist.
➢View documents
Js
Alright campers 🔥💙
Today we step into the database world — where your app stops being forgetful and starts having memory.
🌳 BIG IDEA — What Is MongoDB Really?
Think of your backend like a company:
➞Express = receptionist handling requests
➞Routes = departments
➞Controllers = workers doing tasks
➞MongoDB = warehouse where all records are stored
➤Without a database:
Your app lives only in RAM — like writing on water.
➤With MongoDB:
Your app writes on stone.
MongoDB is a NoSQL document database — which means it stores data as flexible documents instead of rigid tables.
🧱 1️⃣ MongoDB Ecosystem — The Tool Family
MongoDB is not just “one thing”. It’s like a kitchen with multiple tools.
🗄 MongoDB Server
The actual database engine running and storing data.
Like:
The warehouse building itself
🌍 MongoDB Atlas
Cloud-hosted MongoDB.
Like:
Renting a secure warehouse in the cloud instead of building one at home.
Good for:
➢deployment
➢teamwork
➢production apps
🧭 MongoDB Compass
Visual GUI for MongoDB.
Like:
Google Maps for your database — browse, search, edit visually.
💻 mongosh (MongoDB Shell)
Terminal interface.
Like:
Command center — type commands directly to DB.
Best for:
➥power users
➥scripting
➥debugging
🏠 2️⃣ Local MongoDB Installation — Why Local First?
Running MongoDB locally is like:
Learning to cook in your own kitchen
before cooking in a restaurant.
Why it matters:
➡faster
➡no internet dependency
➡safe experiments
➡no billing worries
Install Steps (Local)
Go to MongoDB Community Server download page → install → start service.
After install, MongoDB runs as a background service.
Test it:
Bash
mongosh
If shell opens → MongoDB is running ✅
☁️ 3️⃣ MongoDB Atlas — Cloud Setup
Atlas = MongoDB hosted online.
Use Atlas when:
➛deploying apps
➛working in teams
➛need remote DB
➛need backups & scaling
Atlas Setup Flow
Think of Atlas like opening a bank account:
Step 1 — Create account
Step 2 — Create cluster
Cluster = database machine group
Step 3 — Create DB user
Username + password for access
Step 4 — Network access
Allow your IP address
Step 5 — Get connection string
Looks like:
mongodb+srv://username:password@cluster.mongodb.net/
This is your database address — like a phone number.
🧭 4️⃣ MongoDB Compass — Visual Explorer
Compass is beginner heaven.
Instead of typing commands, you:
click
browse
edit
search
insert documents
Like:-File Explorer for your data warehouse.
Connect with Compass
Paste connection string → connect → explore DB.
You can:
➤create database
➢create collection
➢insert document
➢edit document
➢filter data
💻 5️⃣ MongoDB Shell — mongosh Basics
mongosh = talking directly to MongoDB.
Like chatting with the warehouse manager.
Start:
Bash
mongosh
Create / switch database
Js
use schoolDB
MongoDB creates it only when first data is inserted.
Why?
Because MongoDB is lazy by design — it doesn’t create empty containers.
Create collection & insert document
Js
db.students.insertOne({
name: "Sara",
age: 22
})
Now DB + collection exist.
➢View documents
Js
db.students.find()
🗂 6️⃣ Data Structure — DB → Collection → Document
MongoDB structure is like:
Database
↓
Collection
↓
Document
Analogy:
Library
↓
Bookshelf
↓
Book
➤Database
Big container for related data.
Examples:
ecommerceDB,blogDB,chatAppDB
➤Collection
Group of similar documents.
Examples:users,posts,messages
➤Document
Actual data record — stored as JSON-like object.
Example:
Json
{
"name": "Abel",
"email": "abel@mail.com",
"age": 21
}
🧾 7️⃣ BSON vs JSON — Why MongoDB Doesn’t Store Pure JSON
Students often ask: “If MongoDB uses JSON — why mention BSON?”
Because MongoDB actually stores:
BSON = Binary JSON
Think of it like:
➡JSON = readable recipe
➡BSON = compressed packaged food
Why BSON exists
Because databases need:
➥faster reading
➥indexing
➥binary data
➥dates
➥object IDs
➥better performance
JSON cannot store:
➞dates properly
➞binary data
➞special types
You write JSON — Mongo stores BSON behind the scenes.
🆔 8️⃣ ObjectId — MongoDB’s Built-in ID System
Every document automatically gets:
_id: ObjectId(...)
Like:
Every passport has a unique number.
Example:
Json
Why ObjectId matters
It encodes:
➡timestamp
➡machine id
➡process id
➡counter
Meaning: IDs are globally unique without central authority.
Like generating unique serial numbers without a server asking permission.
🧠 If MongoDB Didn’t Use ObjectId…
You would need:
➥custom ID logic
➥collision checks
➥UUID packages
➥more overhead
MongoDB removes that burden.
MongoDB structure is like:
Database
↓
Collection
↓
Document
Analogy:
Library
↓
Bookshelf
↓
Book
➤Database
Big container for related data.
Examples:
ecommerceDB,blogDB,chatAppDB
➤Collection
Group of similar documents.
Examples:users,posts,messages
➤Document
Actual data record — stored as JSON-like object.
Example:
Json
{
"name": "Abel",
"email": "abel@mail.com",
"age": 21
}
🧾 7️⃣ BSON vs JSON — Why MongoDB Doesn’t Store Pure JSON
Students often ask: “If MongoDB uses JSON — why mention BSON?”
Because MongoDB actually stores:
BSON = Binary JSON
Think of it like:
➡JSON = readable recipe
➡BSON = compressed packaged food
Why BSON exists
Because databases need:
➥faster reading
➥indexing
➥binary data
➥dates
➥object IDs
➥better performance
JSON cannot store:
➞dates properly
➞binary data
➞special types
You write JSON — Mongo stores BSON behind the scenes.
🆔 8️⃣ ObjectId — MongoDB’s Built-in ID System
Every document automatically gets:
_id: ObjectId(...)
Like:
Every passport has a unique number.
Example:
Json
_id: ObjectId("65f8c1a2e8...")
Why ObjectId matters
It encodes:
➡timestamp
➡machine id
➡process id
➡counter
Meaning: IDs are globally unique without central authority.
Like generating unique serial numbers without a server asking permission.
🧠 If MongoDB Didn’t Use ObjectId…
You would need:
➥custom ID logic
➥collision checks
➥UUID packages
➥more overhead
MongoDB removes that burden.
💥 Week 8 Day 8 — MongoDB Foundations Challenges
🧩 Challenge — MongoDB Environment Setup
✅ Task 1 — Install Local Tools
Install on your machine:
➥MongoDB Community Server
➥MongoDB Compass
Then run:
Bash
mongosh
If it connects → local MongoDB is working ✅
✅ Task 2 — Create Local Databases
Using Compass or mongosh, create:
➥At least 2 databases
➥Each database must have 2 collections
➥Each collection must have at least 2 documents
Example themes: schoolDB, shopDB, blogDB — your choice.
✅ Task 3 — MongoDB Atlas (Cloud)
➞Create a MongoDB Atlas account and:
➞Create a free cluster
➞Create a DB user + password
➞Allow your IP address
➞Connect using Compass
✅ Task 4 — Create Cloud Databases Too
Inside Atlas connection:
➞Create 2 databases
➞2 collections each
➞Add documents inside
When you are done,
💥invite a friend,
and as always —
💥stay well, stay curious, and stay coding ✌️
🧩 Challenge — MongoDB Environment Setup
✅ Task 1 — Install Local Tools
Install on your machine:
➥MongoDB Community Server
➥MongoDB Compass
Then run:
Bash
mongosh
If it connects → local MongoDB is working ✅
✅ Task 2 — Create Local Databases
Using Compass or mongosh, create:
➥At least 2 databases
➥Each database must have 2 collections
➥Each collection must have at least 2 documents
Example themes: schoolDB, shopDB, blogDB — your choice.
✅ Task 3 — MongoDB Atlas (Cloud)
➞Create a MongoDB Atlas account and:
➞Create a free cluster
➞Create a DB user + password
➞Allow your IP address
➞Connect using Compass
✅ Task 4 — Create Cloud Databases Too
Inside Atlas connection:
➞Create 2 databases
➞2 collections each
➞Add documents inside
When you are done,
💥invite a friend,
and as always —
💥stay well, stay curious, and stay coding ✌️
Hey everyone ✌️✌️✌️✌️
I have this Hackaton and I need you to vote me 🤗🙏🤗🙏🥹
Go here
https://v0-v0prompttoproduction2026.vercel.app/browse
and search @messibre under Marketing category -you will get a golden colorized "campaign kit studio" - click vote using your vercel account.
Thanks a lot for your help 🙏🙏🙏🙏🙏
I have this Hackaton and I need you to vote me 🤗🙏🤗🙏🥹
Go here
https://v0-v0prompttoproduction2026.vercel.app/browse
and search @messibre under Marketing category -you will get a golden colorized "campaign kit studio" - click vote using your vercel account.
Thanks a lot for your help 🙏🙏🙏🙏🙏
v0-v0prompttoproduction2026.vercel.app
v0 Prompt → Production Week
A global build week. Real work, shipped by the community. January 31 - February 8, 2026
❤3
Forwarded from Edemy
Before your final year ends, or at least before you graduate, challenge yourself.
Don’t just aim for the degree.
Aim for proof of work.
Have at least:
1. 2–3 solid, real-world projects (not just tutorial copies)
2. Real-world experience
3. At least one deployed project people can actually use
4. A GitHub that shows consistency, not just empty repos
5. Real problems you struggled with and solved
6. Experience working with APIs, databases, authentication, deployment ....
University gives you theory.
The market asks for experience.
@edemy251
Don’t just aim for the degree.
Aim for proof of work.
Have at least:
1. 2–3 solid, real-world projects (not just tutorial copies)
2. Real-world experience
3. At least one deployed project people can actually use
4. A GitHub that shows consistency, not just empty repos
5. Real problems you struggled with and solved
6. Experience working with APIs, databases, authentication, deployment ....
University gives you theory.
The market asks for experience.
@edemy251
❤3
Forwarded from Messi Bre
Yayyyyyyyyyy we made it. Thank you so much everyone who took your time to support me.🙏🙏🥰
❤6
Week 8 Day 2 — Core Database Operations (MongoDB CRUD Mastery)
Alright campers 🔥💙
I hope your database warehouse from Day 1 is still standing strong 😄
Today… we stop just creating shelves and start managing the inventory like real engineers.
If Day 1 was “building the warehouse,”
Today is:
👉 Adding items
👉 Searching items
👉 Updating items
👉 Removing items
👉 Organizing items
This is where MongoDB becomes powerful.
🌳 BIG IDEA — CRUD = The Language of Databases
Every serious application in the world does only four things with data:
C → Create
R → Read
U → Update
D → Delete
That’s it.
Instagram? CRUD.
Banking system? CRUD.
Hospital system? CRUD.
E-commerce? CRUD.
It’s like managing a notebook:
➞Write something new
➞Read what’s written
➞Edit a line
➞Erase a line
Databases are just advanced notebooks.
We’ll use this imaginary database:
shopDB
↓
products collection
Example document:
🟢 1️⃣ Insert Operations — Adding Data
Imagine you just bought new products for your shop.
You need to place them on shelves.
➤Insert One
➤Insert Many
🔵 2️⃣ Find Queries — Reading Data
Reading is the most common operation in real apps. Users browse. Search. Filter.
➤Find All
➤Find with Condition (Query Filter)
🧠 Query Filters (Deep Understanding)
Filters are conditions.
MongoDB supports operators like:
➤Greater Than
$gt = greater than
➤Less Than
➤Not Equal
🟡 3️⃣ Field Projection — Choosing What to See
By default, MongoDB shows everything.
But sometimes you only need specific fields.
This means:
Show only name and price.
🟣 4️⃣ Sorting — Organizing Results
You don’t want random order.
➤Sort Ascending
1 = ascending
➤Sort Descending
🟠 5️⃣ Limiting — Show Only First N
Used in:
➞Pagination
➞Featured items
➞Top results
🟤 6️⃣ Skipping — Jump Over Results
Like:Ignore first 3 items.
Now combine skip + limit:
This is pagination.
Like: Page 2 of search results.
🟢 7️⃣ Distinct Values — Unique Entries
Returns:
["Electronics", "Furniture"]
Used for:
➛Filter dropdown menus
➛Analytics
➛Category listings
Alright campers 🔥💙
I hope your database warehouse from Day 1 is still standing strong 😄
Today… we stop just creating shelves and start managing the inventory like real engineers.
If Day 1 was “building the warehouse,”
Today is:
👉 Adding items
👉 Searching items
👉 Updating items
👉 Removing items
👉 Organizing items
This is where MongoDB becomes powerful.
🌳 BIG IDEA — CRUD = The Language of Databases
Every serious application in the world does only four things with data:
C → Create
R → Read
U → Update
D → Delete
That’s it.
Instagram? CRUD.
Banking system? CRUD.
Hospital system? CRUD.
E-commerce? CRUD.
It’s like managing a notebook:
➞Write something new
➞Read what’s written
➞Edit a line
➞Erase a line
Databases are just advanced notebooks.
We’ll use this imaginary database:
shopDB
↓
products collection
Example document:
{
name: "Laptop",
price: 1000,
category: "Electronics",
inStock: true
}
🟢 1️⃣ Insert Operations — Adding Data
Imagine you just bought new products for your shop.
You need to place them on shelves.
➤Insert One
db.products.insertOne({
name: "Phone",
price: 500,
category: "Electronics",
inStock: true
})
➤Insert Many
db.products.insertMany([
{ name: "Mouse", price: 20, category: "Electronics" },
{ name: "Chair", price: 150, category: "Furniture" }
])
🔵 2️⃣ Find Queries — Reading Data
Reading is the most common operation in real apps. Users browse. Search. Filter.
➤Find All
db.products.find()
➤Find with Condition (Query Filter)
db.products.find({ category: "Electronics" })
🧠 Query Filters (Deep Understanding)
Filters are conditions.
MongoDB supports operators like:
➤Greater Than
db.products.find({ price: { $gt: 100 } })
$gt = greater than
➤Less Than
{ price: { $lt: 200 } }
➤Not Equal
{ category: { $ne: "Furniture" } }
🟡 3️⃣ Field Projection — Choosing What to See
By default, MongoDB shows everything.
But sometimes you only need specific fields.
db.products.find({}, { name: 1, price: 1 })
This means:
Show only name and price.
🟣 4️⃣ Sorting — Organizing Results
You don’t want random order.
➤Sort Ascending
db.products.find().sort({ price: 1 })
1 = ascending
➤Sort Descending
.sort({ price: -1 })
🟠 5️⃣ Limiting — Show Only First N
db.products.find().limit(3)
Used in:
➞Pagination
➞Featured items
➞Top results
🟤 6️⃣ Skipping — Jump Over Results
db.products.find().skip(3)
Like:Ignore first 3 items.
Now combine skip + limit:
db.products.find().skip(3).limit(3)
This is pagination.
Like: Page 2 of search results.
🟢 7️⃣ Distinct Values — Unique Entries
db.products.distinct("category")
Returns:
["Electronics", "Furniture"]
Used for:
➛Filter dropdown menus
➛Analytics
➛Category listings
🔥1
🔵 8️⃣ Update Operations — Editing Data
➤Update One
$set means:
Change only this field. Without $set? MongoDB replaces entire document.Very dangerous.
➤Update Many
🔴 9️⃣ Delete Operations — Removing Data
➤Delete One
➤Delete Many
❗️Be careful. Delete is permanent.
🟡 🔟 Bulk Operations — Multiple Actions Together
Sometimes you want to:
➡Insert some
➡Update some
➡Delete some
In one request.
MongoDB supports bulkWrite.
Used in:
➥Migrations
➥Data imports
➥Large system updates
Example structure:
🧠 Why Mastering This Matters
Because when we connect MongoDB to Express:
Your API endpoints will simply wrap these commands.
POST → insert
GET → find
PUT → update
DELETE → delete
CRUD is the engine behind every backend.
➤Update One
db.products.updateOne(
{ name: "Phone" },
{ $set: { price: 550 } }
)
$set means:
Change only this field. Without $set? MongoDB replaces entire document.Very dangerous.
➤Update Many
db.products.updateMany(
{ category: "Electronics" },
{ $set: { inStock: false } }
)
🔴 9️⃣ Delete Operations — Removing Data
➤Delete One
db.products.deleteOne({ name: "Mouse" })
➤Delete Many
db.products.deleteMany({ category: "Furniture" })
❗️Be careful. Delete is permanent.
🟡 🔟 Bulk Operations — Multiple Actions Together
Sometimes you want to:
➡Insert some
➡Update some
➡Delete some
In one request.
MongoDB supports bulkWrite.
Used in:
➥Migrations
➥Data imports
➥Large system updates
Example structure:
db.products.bulkWrite([
{ insertOne: { document: { name: "Desk", price: 200 } } },
{ updateOne: { filter: { name: "Phone" }, update: { $set: { price: 600 } } } },
{ deleteOne: { filter: { name: "Chair" } } }
])
🧠 Why Mastering This Matters
Because when we connect MongoDB to Express:
Your API endpoints will simply wrap these commands.
POST → insert
GET → find
PUT → update
DELETE → delete
CRUD is the engine behind every backend.
🔥1
💥 Week 8 Day 2 — Core Database Operations Challenges (Medium)
Alright campers 🔥💙
Time to combine your CRUD powers. Use mongosh or Compass.
🧩 Challenge 1 — Store Inventory
Create:
storeDB → products
➞Add at least 10 products using insertMany()
➞Fields: name, price, category, inStock, rating
➞Query Electronics only
price > 300
rating < 3
➞Show only name + price (projection)
➞Sort by price (descending)
➞Skip 5 + limit 5
➞Increase price of Electronics
➞Set inStock = false for rating < 2
➞Delete one product by name
➞Delete all out-of-stock products
🧩 Challenge 2 — Student Analyzer
Create:
schoolDB → students
➡Insert At least 12 students
➡Fields: name, age, department, gpa, graduated
➡Query
gpa > 3.5
not graduated
distinct departments
➡sort by gpa (desc)
➡show only name + gpa
➡Increase GPA for Computer Science students
➡Set graduated = true for gpa > 3.7
➡Remove students with gpa < 2.0
🧩 Challenge 3 — Blog Bulk Operations
Create:
blogDB → posts
➡Insert At least 8 posts
➡Fields: title, author, views, category, published
➡BulkWrite (single command)
➛Insert 2 posts
➛Update views of one
➛Publish one draft
➛Delete one post
➛Query
views > 100
➛sort by views (desc)
➛top 3 posts
When you are done,
💥 Share your solutions ,
💥invite a friend,
and as always —
💥stay well, stay curious, and stay coding ✌️
Alright campers 🔥💙
Time to combine your CRUD powers. Use mongosh or Compass.
🧩 Challenge 1 — Store Inventory
Create:
storeDB → products
➞Add at least 10 products using insertMany()
➞Fields: name, price, category, inStock, rating
➞Query Electronics only
price > 300
rating < 3
➞Show only name + price (projection)
➞Sort by price (descending)
➞Skip 5 + limit 5
➞Increase price of Electronics
➞Set inStock = false for rating < 2
➞Delete one product by name
➞Delete all out-of-stock products
🧩 Challenge 2 — Student Analyzer
Create:
schoolDB → students
➡Insert At least 12 students
➡Fields: name, age, department, gpa, graduated
➡Query
gpa > 3.5
not graduated
distinct departments
➡sort by gpa (desc)
➡show only name + gpa
➡Increase GPA for Computer Science students
➡Set graduated = true for gpa > 3.7
➡Remove students with gpa < 2.0
🧩 Challenge 3 — Blog Bulk Operations
Create:
blogDB → posts
➡Insert At least 8 posts
➡Fields: title, author, views, category, published
➡BulkWrite (single command)
➛Insert 2 posts
➛Update views of one
➛Publish one draft
➛Delete one post
➛Query
views > 100
➛sort by views (desc)
➛top 3 posts
When you are done,
💥 Share your solutions ,
💥invite a friend,
and as always —
💥stay well, stay curious, and stay coding ✌️
🔥1