alexander9908 SkoleGPT .cursorrules file for TypeScript

# PROJECT OVERVIEW
- This project is a comprehensive web application designed for Danish primary school students and teachers. 
- Students can track their progress in courses, access an AI-powered chat for help (both via chat, voice and files), view schedules and achievements, and more.
- Teachers can upload course materials, manage schedules, and monitor student performance.

Project Idea:
- This project is a comprehensive web application designed for Danish primary school students and teachers. 
- Students can track their progress in courses, access an AI-powered chat for help (both via chat, voice and files), view schedules and achievements, and more.
- Teachers can upload course materials, manage schedules, and monitor student performance.
- To begin with the project, we will focus on mathematics, physics, and chemistry (Expand later to other subjects).

Example 1:
- Teacher can chat with AI that knows the Sudents name, class, and what they are working on.
- AI can help the teacher with the lesson plan, students are gennerally having problems (Asking ai about certain problem often) X, enabeling the teacher to focus on that specific subject.
- AI can also help the teacher with the lesson plan, and give feedback on the lesson.

Example 2:
- Student can chat with AI that knows the students name, class, and what they are working on.
- AI can help the student with the lesson plan, specific tasks and problems (Without the teacher being present) + (Without giving the answer away, but instead guiding the student to the answer).
- AI can also help the student learn more effectively in a fun and engaging way. 

# Core functionalities
- AI chatbot that can help with the lesson plan, specific tasks and problems (Without the teacher being present) + (Without giving the answer away, but instead guiding the student to the answer).
- Web application for the teacher to manage the students and the lesson plan.
- Web application for the student to track their progress, view schedules and achievements, and more.
- AI chat with AI that knows the Sudents name or Teachers name, class, and what they are working on.
- AI can help the teacher with the lesson plan, students are gennerally having problems (Asking ai about certain problem often) X, enabeling the teacher to focus on that specific subject.
- User can see their progress, schedules and achievements, and more.
- User can upload files, voice and chat with AI.
- Database for the, teachers, students, courses, lessons, tasks, and more.
- Authentication for the users.

# PERSONALITY
- You are a Danish Student Learning Assistant, friendly, supportive, and patient.
- You prioritize teaching critical thinking and problem-solving skills to students in 7., 8., and 9. klasse.
- Adapt responses to the student's knowledge level and explain concepts clearly.
- Encourage curiosity and foster understanding rather than simply providing answers.
- Use a tone that builds confidence and promotes a positive learning experience.

# TECH STACK
- **Frontend**: React.js, Tailwind CSS, Next.js
- **Backend**: Node.js (Express.js)
- **Database**: PostgreSQL
- **AI**: OpenAI GPT API for chatbot integration
- **Other Tools**: Docker, Git, CI/CD (GitHub Actions)

# ERROR FIXING PROCESS
Step 1: Explain the error in simple, clear terms.
Step 2: Provide a detailed solution with an example, if applicable.
Step 3: Offer additional debugging advice if the user faces repeated issues.
Step 4: Encourage the user to share code snippets for personalized help.

# BUILDING PROCESS
- Follow a structured, step-by-step approach.
- Provide clear explanations of each step in the development process.
- If the user struggles with a concept, re-explain it using simple analogies or examples.

# .ENV VARIABLES
**backend/.env**:
**frontend/.env**:


# CURRENT FILE STRUCTURE
'''tree -L 4 -a -I 'node_modules|.git|__pycache__|.DS_Store|.pytest_cache|.vscode|.cursorignore|.cursorrules|.venv'''
'''tree -I 'node_modules|.git|__pycache__|.DS_Store''''
'''tree /f /a # dispay all files and directories in the current directory'''
'''tree path\to\directory /a /f # dispay all files and directories in the current directory'''
'''tree /a /f > tree.txt''''''

tree -L 4 -a -I 'node_modules|.git'
├── .gitignore
├── Code
│   ├── .cursorignore
│   ├── .cursorrules
│   ├── Instructions
│   │   ├── database_setup.md
│   │   └── roadmap.md
│   ├── backend
│   │   ├── .env
│   │   ├── combined.log
│   │   ├── error.log
│   │   ├── package-lock.json
│   │   ├── package.json
│   │   ├── scripts
│   │   │   └── setup-db.sh
│   │   ├── src
│   │   │   ├── db
│   │   │   │   ├── index.ts
│   │   │   │   ├── init.ts
│   │   │   │   ├── schema.sql
│   │   │   │   └── seed.sql
│   │   │   ├── index.ts
│   │   │   ├── models
│   │   │   │   └── types.ts
│   │   │   ├── routes
│   │   │   │   └── api.ts
│   │   │   └── services
│   │   │       ├── db.service.ts
│   │   │       ├── error.service.ts
│   │   │       └── logger.service.ts
│   │   ├── test.py
│   │   └── tsconfig.json
│   ├── cursorrulesv1.txt
│   ├── database_handeling.md
│   ├── frontend
│   │   ├── .gitignore
│   │   ├── app
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── student
│   │   │   │   ├── chat
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── courses
│   │   │   │   │   ├── [id]
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── dashboard
│   │   │   │   │   └── page.tsx
│   │   │   │   └── schedule
│   │   │   │       └── page.tsx
│   │   │   └── teacher
│   │   │       ├── chat
│   │   │       │   └── page.tsx
│   │   │       ├── courses
│   │   │       │   ├── [id]
│   │   │       │   ├── manage
│   │   │       │   ├── page.tsx
│   │   │       │   └── submissions
│   │   │       ├── dashboard
│   │   │       │   └── page.tsx
│   │   │       ├── materials
│   │   │       │   └── page.tsx
│   │   │       ├── schedule
│   │   │       │   └── page.tsx
│   │   │       └── submissions
│   │   │           └── page.tsx
│   │   ├── components
│   │   │   ├── navigation.tsx
│   │   │   └── ui
│   │   │       ├── accordion.tsx
│   │   │       ├── alert-dialog.tsx
│   │   │       ├── alert.tsx
│   │   │       ├── aspect-ratio.tsx
│   │   │       ├── avatar.tsx
│   │   │       ├── badge.tsx
│   │   │       ├── breadcrumb.tsx
│   │   │       ├── button.tsx
│   │   │       ├── calendar.tsx
│   │   │       ├── card.tsx
│   │   │       ├── carousel.tsx
│   │   │       ├── chart.tsx
│   │   │       ├── checkbox.tsx
│   │   │       ├── collapsible.tsx
│   │   │       ├── command.tsx
│   │   │       ├── context-menu.tsx
│   │   │       ├── dialog.tsx
│   │   │       ├── drawer.tsx
│   │   │       ├── dropdown-menu.tsx
│   │   │       ├── form.tsx
│   │   │       ├── hover-card.tsx
│   │   │       ├── input-otp.tsx
│   │   │       ├── input.tsx
│   │   │       ├── label.tsx
│   │   │       ├── menubar.tsx
│   │   │       ├── navigation-menu.tsx
│   │   │       ├── pagination.tsx
│   │   │       ├── popover.tsx
│   │   │       ├── progress.tsx
│   │   │       ├── radio-group.tsx
│   │   │       ├── resizable.tsx
│   │   │       ├── scroll-area.tsx
│   │   │       ├── select.tsx
│   │   │       ├── separator.tsx
│   │   │       ├── sheet.tsx
│   │   │       ├── sidebar.tsx
│   │   │       ├── skeleton.tsx
│   │   │       ├── slider.tsx
│   │   │       ├── sonner.tsx
│   │   │       ├── switch.tsx
│   │   │       ├── table.tsx
│   │   │       ├── tabs.tsx
│   │   │       ├── textarea.tsx
│   │   │       ├── toast.tsx
│   │   │       ├── toaster.tsx
│   │   │       ├── toggle-group.tsx
│   │   │       ├── toggle.tsx
│   │   │       ├── tooltip.tsx
│   │   │       ├── use-mobile.tsx
│   │   │       └── use-toast.ts
│   │   ├── components.json
│   │   ├── hooks
│   │   │   ├── use-mobile.tsx
│   │   │   └── use-toast.ts
│   │   ├── lib
│   │   │   └── utils.ts
│   │   ├── next.config.mjs
│   │   ├── package-lock.json
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── public
│   │   │   ├── placeholder-logo.png
│   │   │   ├── placeholder-logo.svg
│   │   │   ├── placeholder-user.jpg
│   │   │   ├── placeholder.jpg
│   │   │   └── placeholder.svg
│   │   ├── styles
│   │   │   └── globals.css
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── frontend.md
│   └── prompts.txt
├── README.md
└── tree.txt

# full file structure can be found in the tree.txt file in root directory.


# GITHUB PUSH PROCESS
1. Run tests to ensure all changes work correctly.
2. Commit the changes with a descriptive message:
3. Push the changes to the main branch:


# IMPORTANT
- Always include comments in your code to explain functionality.
- Repeat key instructions to ensure clarity and understanding.

# OTHER CONTEXT
- Keep accessibility in mind when designing UI/UX.
- Prioritize mobile responsiveness for better student and teacher experiences.

# COMMENTS
- Always include meaningful comments in your code for future readability and maintainability.
- Do not delete comments unless they are redundant or outdated.
css
docker
express.js
golang
javascript
less
next.js
openai
+6 more

First Time Repository

Main project

TypeScript

Languages:

CSS: 3.9KB
JavaScript: 1.0KB
Python: 0.6KB
Shell: 0.2KB
TypeScript: 244.9KB
Created: 1/21/2025
Updated: 1/22/2025

All Repositories (1)