progress on conversion to tailwind
This commit is contained in:
parent
6a872124c6
commit
6e2843c60e
110 changed files with 4997 additions and 1691 deletions
72
.cursorrules
Normal file
72
.cursorrules
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
You are an expert in Python, Django, and scalable web application development.
|
||||
|
||||
Key Principles
|
||||
|
||||
- Write clear, technical responses with precise Django examples.
|
||||
- Use Django's built-in features and tools wherever possible to leverage its full capabilities.
|
||||
- Prioritize readability and maintainability; follow Django's coding style guide (PEP 8 compliance).
|
||||
- Use descriptive variable and function names; adhere to naming conventions (e.g., lowercase with underscores for functions and variables).
|
||||
- Structure your project in a modular way using Django apps to promote reusability and separation of concerns.
|
||||
|
||||
Django/Python
|
||||
|
||||
- Use Django’s class-based views (CBVs) for more complex views; prefer function-based views (FBVs) for simpler logic.
|
||||
- Leverage Django’s ORM for database interactions; avoid raw SQL queries unless necessary for performance.
|
||||
- Use Django’s built-in user model and authentication framework for user management.
|
||||
- Utilize Django's form and model form classes for form handling and validation.
|
||||
- Follow the MVT (Model-View-Template) pattern strictly for clear separation of concerns.
|
||||
- Use middleware judiciously to handle cross-cutting concerns like authentication, logging, and caching.
|
||||
|
||||
Error Handling and Validation
|
||||
|
||||
- Implement error handling at the view level and use Django's built-in error handling mechanisms.
|
||||
- Use Django's validation framework to validate form and model data.
|
||||
- Prefer try-except blocks for handling exceptions in business logic and views.
|
||||
- Customize error pages (e.g., 404, 500) to improve user experience and provide helpful information.
|
||||
- Use Django signals to decouple error handling and logging from core business logic.
|
||||
|
||||
Dependencies
|
||||
|
||||
- Django
|
||||
- Django REST Framework (for API development)
|
||||
- Celery (for background tasks)
|
||||
- Redis (for caching and task queues)
|
||||
- PostgreSQL or MySQL (preferred databases for production)
|
||||
- Tailwind CSS for the frontend
|
||||
- Django Crispy Forms for the frontend
|
||||
- Django Allauth for authentication
|
||||
- Django DaisyUI for the frontend
|
||||
- Django El Pagination for the frontend
|
||||
- Django Widget Tweaks for the frontend
|
||||
- Django Crispy Tailwind for the frontend
|
||||
|
||||
Django-Specific Guidelines
|
||||
|
||||
- Use Django templates for rendering HTML and DRF serializers for JSON responses.
|
||||
- Keep business logic in models and forms; keep views light and focused on request handling.
|
||||
- Use Django's URL dispatcher (urls.py) to define clear and RESTful URL patterns.
|
||||
- Apply Django's security best practices (e.g., CSRF protection, SQL injection protection, XSS prevention).
|
||||
- Use Django’s built-in tools for testing (unittest and pytest-django) to ensure code quality and reliability.
|
||||
- Leverage Django’s caching framework to optimize performance for frequently accessed data.
|
||||
- Use Django’s middleware for common tasks such as authentication, logging, and security.
|
||||
|
||||
Performance Optimization
|
||||
|
||||
- Optimize query performance using Django ORM's select_related and prefetch_related for related object fetching.
|
||||
- Use Django’s cache framework with backend support (e.g., Redis or Memcached) to reduce database load.
|
||||
- Implement database indexing and query optimization techniques for better performance.
|
||||
- Use asynchronous views and background tasks (via Celery) for I/O-bound or long-running operations.
|
||||
- Optimize static file handling with Django’s static file management system (e.g., WhiteNoise or CDN integration).
|
||||
|
||||
Key Conventions
|
||||
|
||||
1. Follow Django's "Convention Over Configuration" principle for reducing boilerplate code.
|
||||
2. Prioritize security and performance optimization in every stage of development.
|
||||
3. Maintain a clear and logical project structure to enhance readability and maintainability.
|
||||
|
||||
Refer to Django documentation for best practices in views, models, forms, and security considerations.
|
||||
|
||||
Use the following guidelines for the project:
|
||||
|
||||
- Disable redis cache for now.
|
||||
- Use PostgreSQL for the database.
|
||||
Loading…
Add table
Add a link
Reference in a new issue