diff --git a/.cursor/mcp.json b/.cursor/mcp.json
index 433bd63..efc2531 100644
--- a/.cursor/mcp.json
+++ b/.cursor/mcp.json
@@ -1,9 +1,40 @@
{
- "mcpServers": {
- "10x-mvp-tracker": {
- "command": "npx",
- "args": ["-y", "@przeprogramowani/10x-mvp-tracker@latest"],
- "transport": "stdio"
- }
+ "mcpServers": {
+ "10x-mvp-tracker": {
+ "command": "npx",
+ "args": ["-y", "@przeprogramowani/10x-mvp-tracker@latest"],
+ "transport": "stdio"
+ },
+ "playwright": {
+ "command": "npx",
+ "args": [
+ "@playwright/mcp@latest"
+ ]
+ },
+ "filesystem": {
+ "command": "npx",
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
+ "transport": "stdio"
+ },
+ "fetch": {
+ "command": "npx",
+ "args": ["-y", "@modelcontextprotocol/server-fetch"],
+ "transport": "stdio"
+ },
+ "git": {
+ "command": "npx",
+ "args": ["-y", "@modelcontextprotocol/server-git"],
+ "transport": "stdio"
+ },
+ "memory": {
+ "command": "npx",
+ "args": ["-y", "@modelcontextprotocol/server-memory"],
+ "transport": "stdio"
+ },
+ "time": {
+ "command": "npx",
+ "args": ["-y", "@modelcontextprotocol/server-time"],
+ "transport": "stdio"
}
+ }
}
diff --git a/.cursor/rules/shared.md b/.cursor/rules/shared.md
new file mode 100644
index 0000000..9762ce8
--- /dev/null
+++ b/.cursor/rules/shared.md
@@ -0,0 +1,34 @@
+---
+description:
+globs:
+alwaysApply: true
+---
+# AI Rules for {app-name}
+
+{project-description}
+
+## Tech Stack
+
+- htmx
+- tailwind
+- Django
+- PostgreSQL
+- nginx
+
+## Project Structure
+
+When introducing changes to the project, always follow the Django preferred directory structure
+
+## Coding practices
+
+### Guidelines for clean code
+
+- Use feedback from linters to improve the code when making changes.
+- Prioritize error handling and edge cases.
+- Handle errors and edge cases at the beginning of functions.
+- Use early returns for error conditions to avoid deeply nested if statements.
+- Place the happy path last in the function for improved readability.
+- Avoid unnecessary else statements; use if-return pattern instead.
+- Use guard clauses to handle preconditions and invalid states early.
+- Implement proper error logging and user-friendly error messages.
+- Consider using custom error types or error factories for consistent error handling.
\ No newline at end of file
diff --git a/app/templates/account/base.html b/app/templates/account/base.html
index 0f452f3..228da2f 100644
--- a/app/templates/account/base.html
+++ b/app/templates/account/base.html
@@ -7,29 +7,24 @@
-
-
- {% load static %}
-
-
{% block extra_head %}{% endblock %}
-
+
-
+
-
- 📷 SmartGallery
+
+ SmartGallery
-
{% block page_title %}Welcome{% endblock %}
+
{% block page_title %}Welcome{% endblock %}
{% if messages %}
{% for message in messages %}
-
+
{{ message }}
{% endfor %}
@@ -37,17 +32,16 @@
📷 SmartGallery
{% endif %}
-
+
{% block content %}{% endblock %}
-
+
{% block footer_links %}{% endblock %}
-
{% block extra_js %}{% endblock %}
diff --git a/app/templates/account/login.html b/app/templates/account/login.html
index 2417091..f25e171 100644
--- a/app/templates/account/login.html
+++ b/app/templates/account/login.html
@@ -7,7 +7,7 @@
{% block content %}
-
Sign In
+
Sign In
{% get_providers as socialaccount_providers %}
@@ -15,10 +15,10 @@
Sign In
- Or continue with
+ Or continue with
@@ -26,7 +26,7 @@
Sign In
{% for provider in socialaccount_providers %}
{% if provider.id == "google" %}
+ class="w-full inline-flex justify-center items-center px-4 py-2.5 border border-slate-200 rounded-xl bg-white text-sm font-medium text-slate-700 hover:bg-slate-50 hover:border-slate-300 transition-colors shadow-sm">
{% elif provider.id == "facebook" %}
+ class="w-full inline-flex justify-center items-center px-4 py-2.5 border border-slate-200 rounded-xl bg-white text-sm font-medium text-slate-700 hover:bg-slate-50 hover:border-slate-300 transition-colors shadow-sm">
{% elif provider.id == "github" %}
+ class="w-full inline-flex justify-center items-center px-4 py-2.5 border border-slate-200 rounded-xl bg-white text-sm font-medium text-slate-700 hover:bg-slate-50 hover:border-slate-300 transition-colors shadow-sm">
{% else %}
+ class="w-full inline-flex justify-center items-center px-4 py-2.5 border border-slate-200 rounded-xl bg-white text-sm font-medium text-slate-700 hover:bg-slate-50 hover:border-slate-300 transition-colors shadow-sm">
{{ provider.name }}
{% endif %}
@@ -60,10 +60,10 @@
Sign In
- Or use email
+ Or use email
@@ -81,7 +81,7 @@
Sign In
{% endif %}
-
@@ -137,7 +137,7 @@
Sign In
@@ -146,9 +146,9 @@
Sign In
{% endblock %}
{% block footer_links %}
-
+
Don't have an account?
-
+
Sign up
diff --git a/app/templates/account/logout.html b/app/templates/account/logout.html
index af7df61..ad2935a 100644
--- a/app/templates/account/logout.html
+++ b/app/templates/account/logout.html
@@ -6,9 +6,9 @@
{% block content %}
-
Sign Out
+
Sign Out
-
+
Are you sure you want to sign out?
@@ -20,12 +20,12 @@
Sign Out
diff --git a/app/templates/account/password_reset.html b/app/templates/account/password_reset.html
index 0fb3d4b..a655152 100644
--- a/app/templates/account/password_reset.html
+++ b/app/templates/account/password_reset.html
@@ -6,9 +6,9 @@
{% block content %}
-
Password Reset
+
Password Reset
-
+
Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it.
@@ -22,7 +22,7 @@
Password Reset
-
+
Email address
Password Reset
{% if form.email.errors %}
@@ -49,9 +49,9 @@ Password Reset
+
Remember your password?
-
+
Sign in
diff --git a/app/templates/account/password_reset_done.html b/app/templates/account/password_reset_done.html
index d971358..685923a 100644
--- a/app/templates/account/password_reset_done.html
+++ b/app/templates/account/password_reset_done.html
@@ -7,19 +7,19 @@
{% block content %}
diff --git a/app/templates/account/signup.html b/app/templates/account/signup.html
index 38ae198..a5ea570 100644
--- a/app/templates/account/signup.html
+++ b/app/templates/account/signup.html
@@ -6,7 +6,7 @@
{% block content %}
-
Sign Up
+
Sign Up
{% load socialaccount %}
@@ -15,7 +15,7 @@
Sign Up