Your Own Project
Choose, specify, design, and start building your own application
Objectives
By the end of this practical work, you will be able to:
- Choose a project idea and define a clear elevator pitch
- Write comprehensive specifications in a new GitHub repository
- Create wireframe designs for at least 3 key screens in Figma
- Scaffold a Next.js project, deploy to Vercel, and start building
Prerequisites
- Completed Practical Work 1 and 2 (GitHub, Next.js, Antigravity, Vercel experience)
- Understanding of the development workflow from the guided project
Choose Your Project
Your Task
Review the project ideas from the lecture. Pick one that solves a real problem you care about, or propose your own idea. The key is to choose something you are genuinely motivated to build.
Step 1: Write Your Pitch
Write a one-sentence pitch that clearly explains what you are building:
"I'm building [name], a [type] app that helps [who] to [what]."
Examples:
- "I'm building MealPlanner, a web app that helps busy students to plan their weekly meals and generate shopping lists."
- "I'm building PetSitter, a marketplace app that helps pet owners to find trusted pet sitters in their neighborhood."
Step 2: Peer Feedback
Share your pitch with your neighbor. Can they understand it in 30 seconds? If not, simplify. Ask them:
- "Would you use this?"
- "Is it clear what the app does?"
- "Does the scope sound reasonable?"
Scope check: Your project must be achievable in ~10 hours of development. Keep it focused! One well-built feature is better than five half-finished ones.
Checkpoint: You have a clear one-sentence pitch and positive peer feedback on your project idea.
Write Specifications
Your Task
- Create a new GitHub repository with a descriptive name
- Write a comprehensive README using the template below
- Commit the README to your repository
README Template
Use this structure for your project README. Replace the placeholder text with your own content:
# [Project Name]
[One-sentence description from your pitch]
## Target User
[Who will use this app? Be specific about their needs and pain points.]
## Features
### Must Have
- Feature 1: [description]
- Feature 2: [description]
- Feature 3: [description]
### Should Have
- Feature 4: [description]
- Feature 5: [description]
### Could Have
- Feature 6: [description]
## Data Model
[What data does the app store? List the main entities and their key fields.]
Example:
- **Recipe**: title, ingredients (list), steps (list), prep time, category
- **User**: name, email, saved recipes (list)
## Tech Stack
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Deployed on Vercel
## Design
[Figma link will go here]
## Live Demo
[Vercel URL will go here]
Tip: The more detailed your specifications, the better Antigravity will be able to help you build each feature. Think of the README as a conversation with your AI coding assistant.
Checkpoint: Your GitHub repository has a comprehensive README with target user, features (Must/Should/Could), data model, and tech stack sections.
Create GitHub Issues
Your Task
- Create one issue per feature from your README
- Each issue needs: title, description, acceptance criteria
- Add labels: "must-have" and "nice-to-have"
- Order issues by priority (most important first)
Minimum 5 issues — 3 must-have features, 1-2 nice-to-haves, and 1 for project setup.
Example Issue
Here is what a well-written GitHub issue looks like:
Title: Add recipe creation form
**Description:**
As a user, I want to add a new recipe so I can save my favorite meals.
**Acceptance Criteria:**
- [ ] Form has fields: title, ingredients, steps, prep time
- [ ] Clicking "Save" stores the recipe and redirects to the recipe list
- [ ] Form validates that title is not empty
- [ ] Ingredients can be added/removed dynamically
- [ ] Success message appears after saving
**Labels:** must-have
Tips for Good Issues
- Write from the user's perspective: "As a user, I want to..."
- Keep acceptance criteria specific and testable
- Each issue should represent a single feature or task
- Reference related issues if features depend on each other
Checkpoint: You have at least 5 GitHub issues with descriptions, acceptance criteria, and labels (must-have / nice-to-have).
Design in Figma
Your Task
- Create a new Figma file named "[Your App] - Design"
- Use the Stitch AI plugin for initial layout generation
- Design at least 3 key screens
- Focus on must-have features first
Required Screens
Your design must include at least these three views:
- Screen 1: Home / List view — shows all items in your app (e.g., list of recipes, list of tasks, marketplace listings)
- Screen 2: Create / Edit view — form to add or edit an item (e.g., new recipe form, new task form)
- Screen 3: Detail view — shows one item in full detail (e.g., a single recipe with all ingredients and steps)
Using Stitch AI
- Open Figma and create a new design file
- Go to Plugins > Stitch AI
- Describe the screen you want: "A recipe list page with cards showing recipe name, image, and prep time"
- Customize the generated layout to match your vision
- Repeat for each screen
Share Your Design
- Click the Share button in Figma (top right)
- Set sharing to "Anyone with the link can view"
- Copy the link
- Paste the link into your GitHub README under the Design section
Tip: Your Figma designs do not need to be pixel-perfect. They serve as a visual reference for Antigravity when you describe what each page should look like. Focus on layout and structure over polish.
Checkpoint: Your Figma file has at least 3 screens (list, create/edit, detail) and the share link is added to your GitHub README.
Get Teacher Approval
Show Your Teacher
Before moving on to development, present the following to your teacher for validation:
- README with full specifications (Must / Should / Could features)
- GitHub issues with descriptions, acceptance criteria, and labels
- Figma designs covering the core user flow (3+ screens)
What the Teacher Checks
The teacher validates your project scope to ensure it is neither too ambitious nor too simple:
- Is the project realistic for ~2 days of development?
- Are the must-have features clearly defined and testable?
- Does the design cover the main user journey?
- Are issues specific enough to guide AI-driven development?
Important: The teacher may ask you to cut features or clarify requirements. This is normal and helpful! It is much better to discover scope issues now than during development.
Checkpoint: Your teacher has approved your project scope, specifications, and designs. You are cleared to start development.
Scaffold & Deploy
Your Task
- Create a Next.js project with TypeScript and Tailwind CSS
- Push the initial code to your GitHub repository
- Connect the repository to Vercel and deploy
- Add the Vercel URL to your README
Step 1: Create the Project
Run the following command in your terminal:
npx create-next-app@latest my-project --typescript --tailwind --app --src-dir
cd my-project
npm run dev
Replace my-project with your actual project name (use lowercase and hyphens, e.g., meal-planner).
Step 2: Push to GitHub
git init
git add .
git commit -m "Initial project setup with Next.js, TypeScript, and Tailwind"
git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPO.git
git push -u origin main
Step 3: Deploy to Vercel
- Go to vercel.com and sign in with GitHub
- Click "Add New Project"
- Import your repository
- Click "Deploy" — Vercel auto-detects Next.js settings
- Copy the deployed URL and add it to your README
Checkpoint: Your empty project is deployed to Vercel with a live URL. Every push to main will now auto-deploy. Verify the site loads before continuing.
Start Building
Your Task
- Pick your first must-have feature and open the corresponding GitHub issue
- Use spec-oriented prompts to guide Antigravity
- Test in browser after each change
- Commit after each working feature and close GitHub issues as completed
Prompting Template
Use this template when asking Antigravity to implement a feature:
I'm building a [project name] with Next.js, TypeScript, and Tailwind CSS.
Feature: [paste GitHub issue description]
Create the page at src/app/[path]/page.tsx that [description].
Use Tailwind CSS for styling.
Here is my Figma design for reference: [describe what the screen looks like]
Acceptance criteria:
- [paste from GitHub issue]
Prompting Tips
- Always mention the tech stack: Next.js, TypeScript, Tailwind
- Be specific about file paths:
src/app/recipes/page.tsx - Describe visual expectations from your Figma mockup
- Include sample data so Antigravity creates realistic examples
- Reference your GitHub issue description directly in the prompt
Troubleshooting
| Situation | What to Do |
|---|---|
| Stuck on an error | Copy the full error message from the terminal or browser. Paste it to Antigravity and ask: "Fix this error." |
| Stuck on design | Open your Figma design for the screen. Describe exactly what you see (layout, colors, elements) and ask Antigravity to implement it. |
| Stuck for 15+ minutes | Ask a neighbor or your teacher for help. A fresh pair of eyes often solves the problem instantly. |
| Feature too complex | Break it into smaller steps. Implement the simplest version first, then iterate. |
Remember: Commit after each working feature. Small, frequent commits are better than one big commit at the end. Close GitHub issues as you complete them to track your progress.
Checkpoint: You have at least one feature implemented, tested in the browser, committed to GitHub, and deployed to Vercel.
Summary
Deliverables
By the end of this session, you should have completed the following:
Evaluation Criteria
| Criterion | Weight | Description |
|---|---|---|
| Project Selection | 10% | Clear pitch, realistic scope, solves a real problem |
| Specifications | 25% | Comprehensive README with Must/Should/Could features |
| GitHub Issues | 15% | Well-structured issues with acceptance criteria and labels |
| Figma Design | 25% | At least 3 screens, covers main user flow, consistent design |
| Development | 15% | Project scaffolded, deployed, first feature started |
| Organization | 10% | Clear structure, labeled issues, professional presentation |
Bonus Challenges
Intermediate: Create responsive designs in Figma for both mobile and desktop. Test your app on different screen sizes.
Intermediate: Add a custom logo designed in Figma or with an AI tool. Set it as the navigation bar logo and favicon.
Advanced: Implement dark mode support using Tailwind's dark: classes. Save the user's theme preference in localStorage.