Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
86a3d98
hyf
Oct 19, 2025
8e80e4c
Add week2 JS assignments only
Nov 13, 2025
91017b8
Add week3 assignment
Nov 22, 2025
7779b7a
travelTime to use an object for parameters
JyotiHYF Nov 23, 2025
ca0f845
Add week4 voice assistant assignment
Nov 26, 2025
7193134
Add assignment work
Dec 4, 2025
12c79dc
Ignore system files
Dec 17, 2025
472b559
Submit database assignment
Dec 17, 2025
d4f72ea
Add complete Intro to Backend assignment
Dec 19, 2025
4864a86
Fix: implement full CRUD and extend home route with styled HTML dashb…
Dec 19, 2025
153c0e6
Merge remote-tracking branch 'origin/main'
Dec 20, 2025
e680928
Add Intro to JavaScript Week 1 assignment
Dec 20, 2025
7f77c72
Submit frontend assignment
Jan 5, 2026
ce3c629
update main.js
JyotiHYF Jan 10, 2026
59d0f44
Add id to products list in index.html
JyotiHYF Jan 10, 2026
cd06678
Add viewport meta tag and update input structure
JyotiHYF Jan 10, 2026
79b2421
Refactor name validation and remove tryAgainButton
JyotiHYF Jan 10, 2026
ba20507
Refactor CSS class names for consistency
JyotiHYF Jan 10, 2026
19bc2cd
Enhance HTML structure and classes for styling
JyotiHYF Jan 10, 2026
993a132
Merge pull request #9 from JyotiHYF/intro-to-frontend-assignment
JyotiHYF Jan 10, 2026
3dce9b7
Merge pull request #7 from JyotiHYF/intro-js-week1
JyotiHYF Jan 11, 2026
963ae51
Add Intro to Agile assignment with Trello backlog
Jan 15, 2026
49657cb
Merge pull request #3 from JyotiHYF/week4
JyotiHYF Jan 15, 2026
d72a7e1
Merge pull request #10 from JyotiHYF/intro-to-agile-assignment
JyotiHYF Jan 17, 2026
d31d441
Merge pull request #6 from JyotiHYF/intro-backend-assignment
JyotiHYF Jan 18, 2026
53ebbf2
Merge pull request #5 from JyotiHYF/database-assignment
JyotiHYF Jan 18, 2026
9fa8eaf
Merge pull request #4 from JyotiHYF/web-architecture-assignment
JyotiHYF Jan 18, 2026
aa8cb04
Merge pull request #2 from JyotiHYF/js-3
JyotiHYF Jan 18, 2026
6048b9a
Merge branch 'HackYourFuture-CPH:main' into main
JyotiHYF Feb 18, 2026
d1880af
Add doubling numbers
Mar 10, 2026
0f79379
Add short titles function
Mar 11, 2026
cb0f0cb
Add long titles function
Mar 11, 2026
e203b77
Add index.html
Mar 11, 2026
1bc0e10
Add style.css
Mar 11, 2026
1d8be06
Add Setup constants, taggedMovies array, and helper functions and upd…
Mar 11, 2026
74c5993
Add showEightiesCount function
Mar 11, 2026
53c6393
Add taggedmovies function
Mar 11, 2026
1c27e14
keyword count function
Mar 11, 2026
b3ed84d
add duplicate word title function
Mar 11, 2026
b36a265
added average rating function
Mar 11, 2026
cbc6b4d
added ratingcount function
Mar 11, 2026
ae6713b
Merge pull request #12 from JyotiHYF/advance-js/week1
JyotiHYF Mar 15, 2026
4733d14
Add task1: log text after 2.5 seconds
Mar 16, 2026
341c823
Create logAfterDelay function with delay parameter
Mar 16, 2026
250afc9
Add index.html and button that logs text after 5 seconds
Mar 16, 2026
e89abee
Add function that logs earth and sun
Mar 16, 2026
4c744f8
Add task5: log user location on button click
Mar 18, 2026
f2a4993
Implement runAfterDelay with input, double click detection, and jokeC…
Mar 19, 2026
0a46160
Add examples of functions in arrays, variables, and objects
Mar 19, 2026
66461a3
Fix JS outputs and add necessary HTML elements for proper displays
Mar 19, 2026
8cd3b56
add Fastest Presser game with html ,css and js
Mar 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions courses/foundation/databases/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
29 changes: 29 additions & 0 deletions courses/foundation/databases/Assignment.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
-- How many tasks are in the task table?
SELECT count(*) FROM task;

-- How many tasks in the task table do not have a valid due date?
SELECT count(*) FROM task WHERE due_date IS NULL;

-- Find all the tasks that are marked as done.
SELECT id, title FROM task WHERE status_id = 3;

-- Find all the tasks that are not marked as done.
SELECT id, title FROM task WHERE status_id != 3;

-- Get all the tasks, sorted with the most recently created first.
SELECT * FROM task ORDER BY created DESC;

-- Get the single most recently created task.
SELECT * FROM task ORDER BY created DESC LIMIT 1;

-- Get the title and due date of all tasks where the title or description contains database.
SELECT title, due_date FROM task WHERE title LIKE '%database%' OR description LIKE '%database%';

-- Get the title and status (as text) of all tasks.
SELECT title, status.name FROM task JOIN status ON task.status_id = status.id;

-- Get the name of each status, along with a count of how many tasks have that status.
SELECT status.id, status.name, COUNT(task.id) FROM status LEFT JOIN task ON status.id = task.status_id GROUP BY status.id;

-- Get the names of all statuses, sorted by the status with most tasks first.
SELECT status.id, status.name, COUNT(task.id) AS task_count FROM status LEFT JOIN task ON status.id = task.status_id GROUP BY status.id ORDER BY task_count DESC;
94 changes: 94 additions & 0 deletions courses/foundation/git/html-css/week1/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
.selfCompassion {
display: flex;
flex-direction: column;
align-items: center;
padding-top: 6rem;
width: 100%;
background-color: #fdfaf8;
}

.softHero {
background-color: #f7f5eb;
background-image: url("https://images.unsplash.com/photo-1518976024611-28bf4b48222e?auto=format&fit=crop&q=80&w=1200");
background-size: cover;
background-position: center;
color: #2e2e2e;
text-align: center;
padding: 5rem 2rem;
border-radius: 10px;
margin: 2rem;
max-width: 1000px;
}

.softHero h2 {
font-family: "Rouge Script", cursive;
color: #a0c3d2;
font-size: 2.5rem;
margin-bottom: 1rem;
}

.softHero p {
max-width: 700px;
margin: 0 auto;
font-family: "Quicksand", sans-serif;
font-size: 1.1rem;
line-height: 1.6;
}

.articlesContainer {
display: flex;
flex-direction: column;
align-items: center;
gap: 2rem;
padding: 2rem;
width: 100%;
}

.article {
background-color: #fff;
border-left: 5px solid #a0c3d2;
padding: 2rem;
max-width: 700px;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.article:hover {
transform: translateY(-4px);
box-shadow: 0 6px 14px rgba(0, 0, 0, 0.1);
}

.article h3 {
font-family: "Rouge Script", cursive;
color: #a0c3d2;
font-size: 1.8rem;
margin-bottom: 1rem;
}

.article p {
font-family: "Quicksand", sans-serif;
color: #444;
margin-bottom: 1rem;
font-size: 1rem;
line-height: 1.7;
}

.quote {
font-style: italic;
color: #6d7b84;
border-left: 3px solid #a0c3d2;
padding-left: 1rem;
margin: 1.5rem 0;
}

@media (max-width: 700px) {
.softHero {
padding: 3rem 1.5rem;
}

.article {
width: 90%;
padding: 1.5rem;
}
}
69 changes: 69 additions & 0 deletions courses/foundation/git/html-css/week1/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Self-Compassion & Mental Health | Bloom Life</title>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css"
/>
<link rel="stylesheet" href="styles.css" />
</head>

<body>
<header class="header">
<h1>🌸 Bloom Life</h1>
<p class="centerText">Gentle reflections for a softer mind and heart</p>
</header>
<main class="selfCompassion">
<section class="heroSection softHero">
<h2>Self-Compassion & Mental Health</h2>
<p>
This space is for stillness — for learning to be kind to yourself, to
rest without guilt, and to heal without rushing. You deserve gentle
care, even on your hardest days.
</p>
</section>

<section class="articlesContainer">
<article class="article card">
<h3>🌤 Self-Compassion on Heavy Days</h3>
<p>
Some mornings, just getting out of bed feels like a victory. Those
are the days that need softness — not pressure. Let the world move
without you for a while. You’re still enough.
</p>
<blockquote class="quote">
“You are allowed to be both a masterpiece and a work in progress.”
</blockquote>
<p>
Breathe. Wrap yourself in something warm. Speak to yourself as you
would to a friend. Healing doesn’t happen faster just because you
force it — it blooms when you let it.
</p>
</article>

<article class="article card">
<h3>🍵 Letting Go of Productivity Guilt</h3>
<p>
We’ve been taught that our worth comes from what we do. But
sometimes, doing less is the bravest thing. Rest is not laziness —
it’s a quiet act of self-respect.
</p>
<blockquote class="quote">
“You are not behind. You are breathing, learning, and becoming.”
</blockquote>
<p>
Give yourself permission to rest. Let your body and mind recharge.
There is no finish line — only moments to be lived fully, softly,
one breath at a time.
</p>
</article>
</section>
</main>
<footer>
<p>© 2025 Bloom Life. All rights reserved.</p>
<p>Made with ☕, stillness, and soft light.</p>
</footer>
</body>
</html>
30 changes: 30 additions & 0 deletions courses/foundation/intro-to-agile/assignment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
https://trello.com/b/WkYXkTY3/bake-a-chocolate-cake
Backlog

### Now

1. Choose a cake recipe
2. Check ingredients at home
3. Make a shopping list
4. Buy missing ingredients

### Next

5. Preheat oven to 180°C
6. Prepare and grease the cake pan
7. Measure dry ingredients
8. Mix dry ingredients
9. Measure wet ingredients
10. Mix wet ingredients
11. Combine wet and dry mixtures
12. Pour batter into pan
13. Bake cake (25–30 mins)

### Later

14. Remove cake from oven
15. Let cake cool
16. Prepare frosting
17. Frost cake
18. Decorate cake
19. Clean up
20 changes: 20 additions & 0 deletions courses/foundation/intro-to-backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//Dog API Postman Collection :
"https://switjyoti26-237736.postman.co/workspace/Jyoti's-Workspace~f2cdb586-5ee9-4f1c-889c-586d551401b0/collection/50885645-39d33494-eabf-4072-a516-3db9edba9a68?action=share&source=collection_link&creator=50885645"

## Assignment: Extend Webserver

### Routes

- `/`
Returns an HTML page that displays the total number of users.

- `/user-count`
Returns the total number of users in the database as JSON.

- `/users`
Returns all users from the database as JSON.

### Description

The home route (`/`) serves an HTML page that fetches data from the `/user-count`
endpoint using JavaScript. The result is displayed in a styled layout in the browser.
143 changes: 143 additions & 0 deletions courses/foundation/intro-to-backend/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
import express from "express";
import knex from "knex";

const app = express();
app.use(express.json()); // REQUIRED for POST & PUT

// Knex setup
const db = knex({
client: "sqlite3",
connection: {
filename: "./database.sqlite3",
},
useNullAsDefault: true,
});

/**
* HOME ROUTE (HTML)
*/
app.get("/", (req, res) => {
res.send(`
<!DOCTYPE html>
<html>
<head>
<title>User Count</title>
<style>
body {
font-family: Arial, sans-serif;
background: #f2f4f8;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
h1 {
color: #333;
}
.count {
font-size: 48px;
color: #0066cc;
margin-top: 20px;
}
</style>
</head>
<body>
<h1>Total Users</h1>
<div class="count" id="count">Loading...</div>

<script>
fetch('/user-count')
.then(res => res.json())
.then(data => {
document.getElementById('count').innerText = data.count;
})
.catch(() => {
document.getElementById('count').innerText = 'Error';
});
</script>
</body>
</html>
`);
});

/**
* LIST USERS (READ ALL)
*/
app.get("/users", async (req, res) => {
const users = await db("users").select("*");
res.json(users);
});

/**
* FETCH ONE USER (READ ONE)
*/
app.get("/users/:id", async (req, res) => {
const user = await db("users").where({ id: req.params.id }).first();

if (!user) {
return res.status(404).json({ error: "User not found" });
}

res.json(user);
});

/**
* CREATE USER
*/
app.post("/users", async (req, res) => {
const { name, email } = req.body;

if (!name || !email) {
return res.status(400).json({ error: "Name and email are required" });
}

const [id] = await db("users").insert({ name, email });
const user = await db("users").where({ id }).first();

res.status(201).json(user);
});

/**
* UPDATE USER
*/
app.put("/users/:id", async (req, res) => {
const { name, email } = req.body;

const updated = await db("users")
.where({ id: req.params.id })
.update({ name, email });

if (!updated) {
return res.status(404).json({ error: "User not found" });
}

const user = await db("users").where({ id: req.params.id }).first();
res.json(user);
});

/**
* DELETE USER
*/
app.delete("/users/:id", async (req, res) => {
const deleted = await db("users").where({ id: req.params.id }).del();

if (!deleted) {
return res.status(404).json({ error: "User not found" });
}

res.status(204).send();
});

/**
* USER COUNT
*/
app.get("/user-count", async (req, res) => {
const result = await db("users").count("id as count");
res.json({ count: Number(result[0].count) });
});

app.listen(3000, () => {
console.log("Server running on http://localhost:3000");
});
Loading