Specifications & UI Design
Create your GitHub account, design your app in Figma, and write specifications
Objectives
- Create a GitHub account and set up a repository
- Write user stories and feature specifications
- Design app screens using Figma and Stitch AI
- Convert designs into GitHub issues with acceptance criteria
Prerequisites
- A computer with a modern web browser (Chrome, Firefox, or Edge)
- An email address (for creating accounts)
- No technical knowledge required — designed for complete beginners
Guided Project: StudyPlanner
A student task management app that helps organize assignments, track deadlines, and manage coursework. Everyone follows this guided project together throughout the course.
- Create tasks — Add tasks with title, due date, and description
- View task list — See all tasks in a clean, organized list
- Mark complete — Check off tasks as you finish them
- Filter by subject — Focus on one course at a time
- Set priorities — Low, medium, or high priority levels
Create Your GitHub Account
GitHub is the platform where developers store and collaborate on code. You will use it throughout this course to manage your project.
Instructions
- Go to github.com and click Sign Up
- Choose a professional username (e.g.
firstname-lastname) - Verify your email address from your inbox
- Complete your profile:
- Add a profile photo
- Write a short bio (e.g. "Student learning app development")
Tip: Choose a username you would be comfortable putting on a resume. Avoid nicknames or numbers — keep it professional.
Checkpoint: Show your completed GitHub profile to your teacher before moving on.
Create Your Repository
A repository (or "repo") is where your project files and history are stored. Think of it as a folder in the cloud that tracks every change you make.
Instructions
- Click the "+" icon in the top-right corner, then select "New repository"
- Repository name:
study-planner - Description: "A task management app for students"
- Set visibility to Public
- Check "Add a README file"
- Click "Create repository"
Important: Make sure your repository is set to Public, not Private. Your teacher needs to be able to see it.
Checkpoint: Copy your repository URL (e.g. https://github.com/your-username/study-planner) and share it with your teacher.
Write Your Specifications
Part A: Edit Your README
Click on the README.md file in your repository, then click the pencil icon to edit it. Replace the default content with the following structure:
# StudyPlanner
A task management app for students.
## Target Users
Students managing coursework and deadlines.
## Features
- Create tasks with title, due date, and priority
- View all tasks in a list
- Mark tasks as complete
- Filter tasks by subject
- Set priority levels (low / medium / high)
## Tech Stack
- Next.js (React framework)
- Deployed on Vercel
Part B: Write User Stories
User stories describe features from the user's perspective. They follow this format:
"As a [user], I want to [action], so that [benefit]"
Add a "User Stories" section to your README with at least 5 user stories. Here are examples to get you started:
- "As a student, I want to create tasks with a due date, so that I can track my assignments."
- "As a student, I want to mark tasks as complete, so that I can see my progress."
- "As a student, I want to filter tasks by subject, so that I can focus on one course at a time."
- "As a student, I want to set priority levels, so that I know which tasks to work on first."
- "As a student, I want to see a list of all my tasks, so that I have an overview of my workload."
Remember: Click the green "Commit changes" button after editing to save your work. Write a short commit message like "Add project specifications and user stories".
Generate Screens with Stitch AI
Stitch is an AI design tool by Google that generates complete app screens from a text description. You will use it to quickly create your first designs, then import them into Figma for refinement.
Part A: Open Stitch
- Go to stitch.withgoogle.com
- Sign in with your Google account
- Click "Create new project"
- Name your project "StudyPlanner"
Part B: Generate Your Screens
You need at least 3 screens. Use the text prompt box to describe each screen. Generate them one at a time:
Prompt 1 — Task List Screen:
"A clean task list page for a student planner app, mobile-first design with checkboxes, task titles, due dates, and colored priority tags"
Prompt 2 — Add Task Form:
"A task creation form with fields for title, due date, subject dropdown, and priority level selector. Clean, minimal design"
Prompt 3 — Dashboard:
"A dashboard showing upcoming deadlines, task completion statistics, and quick-add button. Modern card-based layout"
Tip: If you are not happy with a result, try rephrasing your prompt or adding more detail. You can also ask Stitch to iterate: "Make the buttons larger and add more whitespace".
Part C: Export from Stitch
Once you are satisfied with your screens:
- Review each screen and make any last adjustments in Stitch
- Click the export or download button for each screen
- Choose "Export to Figma" if available, or download as PNG/SVG files
- Save all exported files to a folder on your computer
Checkpoint: You should have at least 3 generated screens ready for import. Show them to your teacher before continuing.
Import & Refine in Figma
Part A: Set Up Figma
- Create a free account at figma.com
- Create a new design file named "StudyPlanner Design"
Part B: Import Your Stitch Designs
Bring your generated screens into Figma:
- If you exported as Figma file: Open the file directly in Figma, then copy the frames into your "StudyPlanner Design" file
- If you exported as PNG/SVG: Drag and drop the image files onto your Figma canvas, or use File → Place Image
Tip: Arrange your screens side by side on the Figma canvas with some spacing between them. This gives you a clear overview of the full app flow.
Part C: Refine Your Designs
Now that your screens are in Figma, refine them for consistency:
- Make sure all screens use the same color palette
- Use consistent fonts and font sizes across screens
- Ensure buttons and interactive elements have a similar style
- Add your app name and navigation elements to each screen
- Add labels or annotations to clarify interactive elements
Why Figma? Stitch generates screens fast, but Figma is where you fine-tune. Real teams use Figma for collaboration, design systems, and developer handoff. Having your designs in Figma is a professional standard.
Part D: Share Your Design
- Click Share in the top-right corner of Figma
- Set the link to "Anyone with the link can view"
- Copy the share link — you will submit this to your teacher
Checkpoint: Share your Figma link with your teacher. They should be able to see at least 3 refined screens.
Convert Design to GitHub Issues
Now you will turn your design and specifications into actionable work items. Go to your repository → Issues tab → New issue.
Create one GitHub issue per feature or screen. Each issue should follow this format:
Title: Create Task List Page
Description:
Display all tasks in a card-based list with title,
due date, subject, and completion status.
Acceptance Criteria:
- [ ] Page loads at /tasks
- [ ] Shows all tasks from the database
- [ ] Each task displays title, due date, subject, priority
- [ ] Completed tasks are visually distinct
- [ ] Empty state message when no tasks exist
- [ ] Page is responsive on mobile screens
Labels: feature, ui
Add Labels to Your Issues
Go to Issues → Labels and create these labels if they do not already exist:
- feature — New functionality to implement
- ui — User interface and visual design
- data — Data management and storage
Apply the appropriate label(s) to each issue you create.
Suggested Issues
Create a minimum of 5 issues (recommended: 8–10). Here are suggestions to cover all features and screens:
- Set up project structure
- Create task list page
- Create add task form
- Create task detail view
- Implement task completion toggle
- Add priority filtering
- Add subject/course filtering
- Create dashboard with statistics
Common mistake: Issues without acceptance criteria. Every issue needs clear "done" criteria — if you cannot describe when it is complete, it is not specific enough.
Deliverables & Evaluation
Before you leave, make sure all of the following are complete and shared with your teacher:
Before you leave: Make sure all links are shared with your teacher. Your GitHub repo must be public and your Figma file must have sharing enabled.
Evaluation Criteria
| Criterion | Weight | Description |
|---|---|---|
| GitHub Setup | 15% | Account, repository, and README properly configured |
| Specifications | 25% | Clear features list and well-written user stories |
| Figma Design | 30% | At least 3 screens, consistent design, shared properly |
| GitHub Issues | 20% | Well-structured issues with acceptance criteria |
| Organization | 10% | Labels, clear descriptions, professional presentation |
Bonus Challenges
Great work! You have completed the most important phase: planning. Tomorrow (Day 2), we bring this design to life with code — Next.js, Antigravity, and Vercel deployment.