You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+31Lines changed: 31 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -103,6 +103,37 @@ If you'd like to contribute—whether it's improving the UI, optimizing performa
103
103
104
104
---
105
105
106
+
### 🧠 How to Contribute
107
+
108
+
1. **Fork the Repo** and clone it locally
109
+
2. Run `pnpm install` and `pnpm dev` to start the dev server
110
+
3. Check the `Issues` tab for open tasks — especially those labeled `good first issue`
111
+
4. Follow the `CONTRIBUTING.md` (coming soon) for guidelines
112
+
5. Submit a Pull Request — even small improvements matter!
113
+
114
+
💡 **Ideas for Contribution** (feel free to raise these as issues):
115
+
- Add undo/redo support in standalone mode
116
+
- Add support for duplicating a selected shape using **Ctrl + D** keyboard shortcut.
117
+
- Fix: **Rounded corners not working for Diamond shape**
118
+
When the **"rounded"** option is selected for diamond shapes, the corners remain sharp. Update the rendering logic to support rounded edges for diamonds.
119
+
120
+
👉 Tag your issue with `good first issue`, `help wanted`, or `enhancement` so others can discover and contribute!
121
+
122
+
---
123
+
124
+
### 📄 Architecture Overview (Differences from Cohort Project)
125
+
126
+
- **Next.js 15 for Fullstack**: Frontend and backend are handled together using server actions. No separate HTTP services.
127
+
- **No Mandatory Auth for Canvas Use**: Users can draw without logging in. Auth is only required for collaboration.
128
+
- **Server Actions Instead of REST APIs**: Room creation, joining, and user management are handled through server actions.
129
+
- **Standalone Mode with Local Storage**: For solo drawing sessions, data is stored locally and never sent to a server.
130
+
- **Interactive Room Collaboration Mode**: Shows participant presence, names, and avatars in real-time sync only as of now.
131
+
- **End-to-End Encrypted Collaboration**: No drawn shapes or messages are stored in any database.
132
+
- **Database Used Only for Auth**: All other state management is client-side or ephemeral.
133
+
- **Hookified WebSocket Layer**: Abstracts the socket connection with clean React patterns.
134
+
135
+
---
136
+
106
137
## 📄 License
107
138
108
139
This project is licensed under a **Custom Personal Use License** — you may view and learn from the code, but **commercial use, redistribution, or claiming authorship is strictly prohibited**.
0 commit comments