Already writing code

Learn to code by building a focus timer log

The idea

A focus timer that logs each 25-minute session against a task and shows how long I spent on each task this week

This is the path the studio planned from the idea above. Yours is planned from your own words and from what you already know, so its steps will be your own.

Planned for: Has built things before, under 2 years experience, has not shipped a full-stack app end to end · 8 hours a week · HTML, CSS and JavaScript, then Node and Express

Change anything. Your path is planned from what you write, and from what you already know.

Your first build is on us. When you press Build, we check your card with a ₹1 hold that is never charged.

Your first version

Focus Week

A focus timer for recording 25-minute sessions and showing how much time you spend on each task each week.

What the studio would build first, and what it sets aside, read from the idea the way your own project's would be.

What it keeps

  • Add and remove tasksCreate a list of tasks, choose the active task, and remove tasks you no longer need.
  • Run a 25-minute timerStart, pause, resume, finish, or cancel a focus session and record it against the selected task.
  • See this week's progressSee the total focus time for each task in the current week.
  • Review past sessionsView completed sessions with their task, date, start time, and focused minutes.
  • Save data and use the app on any screenKeep tasks and sessions after closing the browser, and make the timer easy to use on phones and computers.

Later in your path

  • Sync focus data through a serverSend tasks and completed sessions to a Node and Express server so the same data can load on another device.With a server
  • Sign in and keep focus data privateCreate an account and store each person's tasks and sessions separately in MongoDB.With a database and accounts

What it leaves out, and why

  • Custom timer lengthsA fixed 25-minute timer keeps version 1 small and easy to test.
  • Calendar charts and long-term historyWeekly totals provide the main insight without the extra work of charts, date navigation, and pagination.
  • Team tasks and shared timersOne-person focus sessions are the core, while teams would add permissions and real-time updates.
  • Music, browser notifications, and integrationsThese extras are not needed for learning the end-to-end timer, server, database, and account flow.

Your path

31 steps, about 21 hours

In the browser 9 steps · about 8 hours
  1. 1 Set up the task and timer page 1
  2. 2 Give the page a clear look 1
  3. 3 Make the page work on any screen 1
  4. 4 Calculate the focus timer 1
  5. 5 Keep the timer safe and ready to run 1
  6. 6 Add tasks from the page 1
  7. 7 Store tasks and session records 1
  8. 8 Show this week's focus progress 1
  9. 9 Edit tasks and use the app accessibly 1
With a server 15 steps · about 8 hours
  1. 10 Show where Focus Week will sync 2
  2. 11 Prepare the page to get sessions from a server 2
  3. 12 Start the Focus Week server 2
  4. 13 Handle requests and errors in one place 2
  5. 14 Serve the Focus Week page 2
  6. 15 Write the focus session API contract 2
  7. 16 Save sessions while the server runs 2
  8. 17 Manage one focus session 2
  9. 18 Load and save sessions from your server 2
  10. 19 Show what a server restart forgets 2
  11. 20 Keep sessions in a JSON file 2
  12. 21 Protect the server from bad sessions 2
  13. 22 Test the focus session API 2
  14. 23 Prepare the server to run 2
  15. 24 Plan the next Focus Week improvement 2
Database and accounts 7 steps · about 5 hours
  1. 25 Plan for lasting focus data 3
  2. 26 Keep focus sessions in MongoDB 3
  3. 27 Create your Focus Week account 3
  4. 28 Sign in and protect the focus API 3
  5. 29 Keep focus data private 3
  6. 30 Run the finished Focus Week server 3
  7. 31 Measure the focus page 3
Your app's map Focus Week
fetch /api/...

In the browser

Your server

Where data lives

What you will have proved

57 concepts

Every concept is one the path teaches, in the order it teaches them, after the ones it needs first.

In the browser
  1. Lists, sections and semantic tags
  2. Forms and inputs
  3. CSS selectors, colors, text
  4. Box model and spacing after CSS selectors, colors, text
  5. Hover, focus, disabled and error states after CSS selectors, colors, text, Forms and inputs
  6. Layout with Flexbox after Box model and spacing
  7. Responsive basics after Layout with Flexbox
  8. Variables and values
  9. Finding elements on the page after Variables and values
  10. Strings, numbers, booleans after Variables and values
  11. Decisions with if/else after Strings, numbers, booleans
  12. Working with dates and times after Strings, numbers, booleans
  13. Functions after Decisions with if/else
  14. Handling what can go wrong after Functions
  15. Responding to clicks and input after Finding elements on the page, Functions
  16. Reading and validating form input after Responding to clicks and input, Forms and inputs
  17. Arrays after Functions
  18. Objects after Arrays
  19. JSON after Objects
  20. Totals, sorting and grouping after Arrays, Objects
  21. Rendering a list from data after Objects, Finding elements on the page, Lists, sections and semantic tags
  22. Single source of truth after Rendering a list from data, Reading and validating form input
  23. Saving in the browser with localStorage after JSON, Single source of truth, Handling what can go wrong
  24. Create, read, update, delete after Saving in the browser with localStorage
  25. Accessible by default after Forms and inputs, CSS selectors, colors, text
With a server
  1. Why your app needs a server after Saving in the browser with localStorage, Create, read, update, delete
  2. Asynchronous code after Functions, Why your app needs a server
  3. How HTTP works after JSON, Why your app needs a server
  4. Calling an API from the browser after Asynchronous code, How HTTP works
  5. What a REST API is after How HTTP works
  6. Node: JavaScript outside the browser
  7. Your first Express server after Node: JavaScript outside the browser, How HTTP works
  8. Configuration and secrets after Your first Express server
  9. Middleware, static files, errors after Your first Express server
  10. Serve the page you built, untouched after Middleware, static files, errors
  11. Write your API's contract and try it after What a REST API is, Your first Express server, Serve the page you built, untouched
  12. Keep data in memory and answer from it after Write your API's contract and try it, Middleware, static files, errors
  13. CRUD API for your resource after Middleware, static files, errors, Keep data in memory and answer from it, What a REST API is
  14. Move your app from localStorage to the API after CRUD API for your resource, Calling an API from the browser
  15. Keep data in memory and watch a restart wipe it after Move your app from localStorage to the API
  16. Reading and writing a JSON file after Node: JavaScript outside the browser, Asynchronous code, Handling what can go wrong, Keep data in memory and watch a restart wipe it
  17. Validate on the server after CRUD API for your resource, Reading and writing a JSON file
  18. Write your first tests after CRUD API for your resource
  19. What a host needs from your server after Move your app from localStorage to the API, Configuration and secrets, Validate on the server
  20. Ship, get feedback, adjust after What a host needs from your server
Database and accounts
  1. Why a JSON file is not enough after CRUD API for your resource, Reading and writing a JSON file
  2. MongoDB: your first real database after Why a JSON file is not enough, Configuration and secrets
  3. Schemas and models with Mongoose after MongoDB: your first real database
  4. CRUD with MongoDB after Schemas and models with Mongoose, Validate on the server
  5. Signup with hashed passwords after Schemas and models with Mongoose
  6. Login and protected routes after Signup with hashed passwords, Middleware, static files, errors
  7. Security basics after Login and protected routes
  8. Relating documents after CRUD with MongoDB, Login and protected routes
  9. Users only see their own data after Login and protected routes, Relating documents
  10. Run it like production after CRUD with MongoDB, Configuration and secrets, What a host needs from your server
  11. Frontend and backend together after Run it like production, Move your app from localStorage to the API
  12. Measure before you optimise after Frontend and backend together

What the checker will ask of you

Each step is checked when you press Check: in a real browser, or by starting your server and making requests. These are the first checks on this path.

1Step 1 · Set up the task and timer page

The page contains a semantic list area for focus tasks.

1Step 2 · Give the page a clear look

The task and timer areas use CSS colors and readable text styles.

1Step 3 · Make the page work on any screen

The page lays out the main sections in a row on a wider screen.

What people ask

What does it cost to build this?

Your first build is on us: one project, the phase in the browser, with the AI to build it. To start it, your bank puts a ₹1 hold on a card; it is released and never charged. Studio access is ₹6,999 once and opens every phase for 6 projects; nothing renews.

What do I need?

A browser and a card for the ₹1 hold. Nothing to install: the browser steps run in a live preview, and the server steps run in a private workspace of your own, with a terminal and git and your own MongoDB.

How long does it take?

This path is 31 steps, about 21 hours: at 8 hours a week, about 3 weeks. Your own path is planned from your idea and sized to what you already know.

Do I keep the code?

Yes. Every step you pass is kept, and you can download the whole project as a git repository with one commit for each step, or publish it to your own GitHub. The code is yours.

See all twenty ideas