DBDesigner.net is a collaborative database schema design platform that enables teams to visualize, plan, and iterate on database structures in real time. Built with Ruby on Rails backend and a React front end, the app leverages WebSockets to deliver instantaneous, live updates as multiple users collaborate on the same diagram. Designed for usability, it features drag‑and‑drop schema building, role‑based access controls, and export functionality. Users can effortlessly share their evolving models, export to SQL, PNG, or PDF, and work securely within team permissions.
- Constructed the collaborative schema editor engine using Ruby on Rails, ensuring secure backend processing of schema data, version history, and user sessions.
- Integrated WebSocket support (ActionCable) to enable live updates; when one user creates or modifies tables or relationships, all connected collaborators see changes in real time.
- Developed a dynamic drag‑and‑drop interface using React, allowing intuitive placement and linkage of tables, columns, and relationships within interactive canvas diagrams.
- Implemented export features that let users save designs as SQL dumps, PNG images, or PDF files, including layout preservation and metadata for each format.
- Built a permissions system with user roles (e.g. admin, editor, viewer), allowing secure multi‑user collaboration and controlled edit rights within shared project teams.
- Architected and enforced backend validation rules for schema integrity, preventing invalid relationships or duplicate identifiers in multi‑editor environments.
- Designed frontend React components for canvas rendering, toolbar menus, and draggable elements for tables and connectors—ensuring smooth, responsive interactions across devices.
- Embedded WebSocket-driven event handlers to propagate schema changes (create, update, delete) instantly, with visual cues and undo/redo support for collaborative consistency.
- Built export logic in Rails controllers to convert internal schema representations into functional SQL code, as well as render diagram snapshots as PNG or PDF, using server-side libraries.
- Designed and enforced role-based access at both front-end and API levels, restricting editing rights while still permitting real‑time viewing for team members.
- Focused on performance optimization for large diagrams: batching updates, debouncing event streams, and minimizing redraw cycles to preserve UX under load.
- Added client-side validation and visual feedback for schema errors like orphaned tables, cyclic relationships, or missing primary keys to maintain data integrity.
- Deployed the app in a scalable environment with support for multiple concurrent sessions, ensuring that both backend sockets and frontend interfaces remained responsive under team collaboration loads.
