Cursor-rules
PromptBeginner5 minmarkdown
Repo rules
- This provisioning code is designed to run on Manjaro Linux.
4
This guide outlines the project structure and provides step-by-step instructions for setting up the Geometry Tutor application.
Loading actions...
- This provisioning code is designed to run on Manjaro Linux.
Project Summary:
This guide outlines the project structure and provides step-by-step instructions for setting up the Geometry Tutor application.
This guide outlines the project structure and provides step-by-step instructions for setting up the Geometry Tutor application.
geometry-tutor/
├── public/
│ └── images/ # Static images
├── src/
│ ├── app/
│ │ ├── (auth)/
│ │ │ ├── login/
│ │ │ └── register/
│ │ ├── (dashboard)/
│ │ │ ├── layout.tsx
│ │ │ ├── page.tsx # Dashboard/Home page
│ │ │ ├── progress/
│ │ │ │ └── page.tsx # Progress tracker
│ │ │ ├── settings/
│ │ │ │ └── page.tsx # Settings page
│ │ │ └── modules/
│ │ │ └── [moduleId]/
│ │ │ ├── page.tsx
│ │ │ ├── lesson/
│ │ │ │ └── page.tsx
│ │ │ ├── demonstration/
│ │ │ │ └── page.tsx
│ │ │ ├── quiz/
│ │ │ │ └── page.tsx
│ │ │ └── review/
│ │ │ └── page.tsx
│ │ ├── layout.tsx # Root layout
│ │ └── globals.css # Global styles
│ ├── components/
│ │ ├── ui/ # Reusable UI components
│ │ ├── modules/ # Module-specific components
│ │ │ ├── pythagorean-demo.tsx
│ │ │ ├── quiz-component.tsx
│ │ │ └── ...
│ │ ├── layout/ # Layout components
│ │ └── shared/ # Shared components
│ ├── lib/
│ │ ├── constants.ts # App constants
│ │ ├── types.ts # TypeScript types
│ │ └── utils.ts # Utility functions
│ ├── hooks/
│ │ └── use-module-progress.ts # Custom hooks
│ └── store/
│ └── user-progress-store.ts # Zustand store
├── .eslintrc.json
├── .gitignore
├── next.config.js
├── package.json
├── postcss.config.js
├── README.md
├── tailwind.config.js
└── tsconfig.json
# Create a new Next.js project with the app router
npx create-next-app@latest geometry-tutor
cd geometry-tutor
When prompted, select:
src/ directory? → Yesnpm install framer-motion zustand @radix-ui/react-dialog @radix-ui/react-progress @radix-ui/react-tabs
# Install dev dependencies
npm install -D @tailwindcss/typography
# Create the main directory structure
mkdir -p src/app/(auth)/login src/app/(auth)/register \
src/app/(dashboard)/progress src/app/(dashboard)/settings \
src/app/(dashboard)/modules \
src/components/ui src/components/modules src/components/layout src/components/shared \
src/lib src/hooks src/store \
public/images
Replace the generated tailwind.config.js with our custom configuration:
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
],
darkMode: 'class',
theme: {
extend: {
// Configuration from tailwind-config.js
},
},
plugins: [
require('@tailwindcss/typography'),
],
};
src/app/globals.css with our custom CSSsrc/lib/types.ts with our type definitionssrc/lib/constants.ts with module datasrc/store/user-progress-store.ts for state managementCreate all the page components:
Create all reusable components:
npm run dev
Visit http://localhost:3000 to see your app in action.
Follow the deployment guide to deploy your app to Vercel: