Just shipped my SQLStudio project and recorded an explanation video for it. SQLStudio is a full-stack platform where users can practice SQL through real assignments, run queries, get AI-powered hints, and understand database schemas in one place. What I built: - Assignment-based SQL challenges - Interactive SQL editor to run queries - Schema viewer for table relationships - Smart hint panel powered by Mistral LLM via Ollama - Results table for instant query feedback - APIs for assignments, hints, and query execution Tech stack: - Frontend: React + Vite + SCSS - Backend: Node.js + Express - Databases: PostgreSQL + MongoDB - LLM setup: Ollama (Mistral model) for hint generation or Google Gemini Api. etc How it works (step by step): 1. User opens an assignment in the playground. 2. Frontend fetches assignment details, schema, and metadata from backend APIs. 3. User writes a SQL query in the editor and clicks run. 4. Backend sanitizes and validates the query. 5. Query is executed on PostgreSQL. 6. Results (or errors) are returned and displayed in the results table. 7. If the user gets stuck, they click Hint. 8. Backend sends assignment context to Mistral via Ollama or any Other llm that you use. 9. LLM-generated hint is stored/managed through MongoDB-backed hint flow and returned to the UI. 10. User iterates and improves the query until the expected output is achieved. This project helped me learn a lot about building end-to-end products, integrating LLMs into practical workflows, and balancing backend logic with clean UI/UX. Would love your feedback on the project and the video. #FullStackDevelopment #ReactJS #NodeJS #ExpressJS #PostgreSQL #MongoDB #Ollama #Mistral #LLM #SQL #WebDevelopment #BuildInPublic
More Relevant Posts
-
Debugging for 3 days… and the bug wasn’t in my code. For the last 3 days, I was stuck on a database connection issue in my Next.js + Prisma + PostgreSQL (Neon DB) setup. Every time I ran the migration, I kept getting this error: > “ERROR P1001: Can't reach database server…” I checked everything: • Prisma schema • Environment variables • Connection string • Network issues • Project configuration I even used multiple AI tools to debug it: * ChatGPT * Claude * Google AI Studio But nothing worked. The frustrating part? The code was perfectly fine. --- ### What was actually wrong? Today I decided to inspect the database dashboard in Neon. When I opened the Tables section, I noticed something strange: The tables were not loading and showing an error. That’s when it clicked. The issue wasn’t in my Next.js app or Prisma ORM. It was coming from the Neon database side. After fixing the database state, everything worked instantly. My stack finally connected: Next.js ⚡ Prisma ORM ⚡ Neon PostgreSQL ⚡ And the app started running perfectly. --- ### Lesson learned When debugging backend issues: Don’t just look at your code. Also verify: * Database status * Cloud provider dashboards * Connection health * External services Sometimes the bug is not in your codebase. --- Debugging like this is frustrating… but it’s also where the real learning happens. --- 💬 Curious to know: What’s the longest time you’ve spent debugging a bug that **wasn’t actually in your code**? #SystemDesign #Frontend #Backend #MERNStack #WebDev #FullStack #Developer #Web #Developer #Performance #Rendering #Express #JavaScript #BackendDev #Node #Mongo #Database #PostgreSQL #NeonDB #Next.js #Prisma #ReactQuery #ZodValidation
To view or add a comment, sign in
-
-
"It’s just a proof of concept." 🚩 Famous last words in backend engineering. Two years into operating a SaaS LMS built on Laravel, our "prototype" hit a wall. As we decoupled for mobile APIs, we triggered a massive network bottleneck. Our PHP workers were dragging 500k+ rows of raw PostgreSQL data across the network just to compute simple monthly aggregations and user streaks. The Result? Extreme memory exhaustion, lock contention, and 4-second dashboard load times that frustrated our users. The Solution: Respecting Data Gravity. 🌎 Instead of moving the data to the computation, we pushed the computation into the PostgreSQL execution engine: 🚀 N+1 Aggregations → PL/pgSQL Cursors (54% faster) 🚀 Bulk Ingestion → Statement-Level Triggers (88% faster) 🚀 Live Analytics → Materialized Views (99.9% faster) 🚀 Retention Logic → Recursive CTEs (95% RAM reduction) I’ve documented the entire architectural post-mortem, including the raw EXPLAIN ANALYZE outputs and a reproducible Docker environment. (Links to Hashnode Deep-Dive, Kaggle Playground, and GitHub Source in the first comment below! 👇) How do you handle the "ORM Wall" in your stack? Have you experimented with pushing logic into the database engine? Let's discuss. #DataEngineering #PostgreSQL #Laravel #SystemDesign #SQL #BackendPerformance #SoftwareArchitecture #SoftwareEngineering #DatabaseOptimization
To view or add a comment, sign in
-
I’ve been hitting this problem for years as a backend developer… You know exactly what data you need. But writing the perfect SQL query (or ORM version) takes way longer than it should. So I decided to build something about it. Introducing HumanQuery — an open-source tool I started to make database querying feel… human. Here’s the idea: → Connect your database (PostgreSQL, MySQL, SQL Server, SQLite) → Ask your question in plain English → HumanQuery reads your live schema → Generates read-only SQL for your specific dialect → Runs it and shows results instantly And something I really wanted personally 👇 It also gives you parallel code for: Prisma TypeORM Sequelize SQLAlchemy Django ORM So you can actually see how SQL maps to your ORM instead of guessing. ⚙️ Built with: React + Vite + Fastify + TypeScript Uses your own OpenAI API key / GEMINI API Key for now (I'll include openRouter soon ) 🔐 Security: Connection strings encrypted at rest Metadata stays local (SQLite) ⚠️ Honest note: Queries are executed → use read-only access Schema/prompts go to LLM→ avoid sensitive data This is just the beginning. If you’re someone who works with databases daily, I’d genuinely love your feedback 🙌 ⭐ Star the repo 🐛 Open issues 🔗 https://lnkd.in/gg3nH6V2 Let’s make databases easier for developers. #opensource #buildinpublic #developers #sql #orm #backend #typescript #reactjs #ai
To view or add a comment, sign in
-
I spotted an N+1 query problem in a PR this week. The app worked fine locally. In production with real data? It would have made hundreds of unnecessary database calls. Here's what it is and why it matters 👇 𝗪𝗵𝗮𝘁 𝗶𝘀 𝗡+𝟭? You fetch a list of 100 users (1 query), then loop through them to fetch each user's posts (100 more queries). That's 101 queries when 1 would do. 𝗪𝗵𝘆 𝗶𝘁'𝘀 𝗮 𝗽𝗿𝗼𝗯𝗹𝗲𝗺 It's invisible at small scale. But under real load, it quietly kills your app's performance. 𝗛𝗼𝘄 𝘁𝗼 𝗳𝗶𝘅 𝗶𝘁 The approach depends on your stack — but the principle is the same: never query inside a loop. → SQL: use JOINs or ORM eager loading (Prisma's `include`, Sequelize's `eager loading`) → MongoDB: use `$lookup` in aggregation, or `$in` to batch fetch in one query → Mongoose: be careful with `populate()` — it still makes separate queries under the hood One query. Same result. Much faster. Always think about your queries at scale, not just at function level. #softwaredevelopment #webdevelopment #javascript #nodejs #mongodb #programming
To view or add a comment, sign in
-
🚀 Learning System Design by Building a URL Shortener Today I worked on building a full-stack URL Shortener to understand how real-world systems are designed and scaled. What the backend is doing: Accepts a long URL and generates a unique short code Stores the mapping in MongoDB Redirects users from short URL → original URL Tracks total clicks for each shortened link Exposes a simple analytics endpoint for URL stats Handles duplicate URLs and validates input properly Tech Stack: Frontend: Next.js, Tailwind CSS Backend: Node.js, Express.js Database: MongoDB Atlas Deployment: Vercel + Render This project helped me understand concepts like: API design Routing and controllers Database schema design URL mapping logic Analytics tracking Deployment and production debugging 🔗 Live Demo: https://lnkd.in/g_qd-WB7 💻 Source Code: https://lnkd.in/g7Kp865n Still learning and improving it step by step ⚡ Would love to hear what features you’d add next! #SystemDesign #FullStackDevelopment #WebDevelopment #Nodejs #Nextjs #MongoDB #SoftwareEngineer #BuildInPublic #BackendDevelopment #100DaysOfCode
To view or add a comment, sign in
-
-
Why I stopped relying on .filter(tenant=user.tenant) for multi-tenancy. When you’re starting out, queryset filtering in Django feels like the standard way to handle multi-tenancy. You add a tenant_id to your models, and you remember to filter every query. It works until it doesn't. One forgotten filter in a complex join, or one developer rushing a hotfix, and suddenly Tenant A is seeing Tenant B’s sensitive data. In the world of enterprise contracts and security audits, "oops" isn't a valid defense. For my recent B2B builds, I’ve moved the security perimeter from the application code to the database engine using PostgreSQL Row-Level Security (RLS). Here's why; ✅ The "Fail-Closed" Standard: Isolation is enforced by the Postgres engine. Even if your Django middleware fails to set the tenant context, the database defaults to returning zero rows. You are protected by the database constraints, not just a line of Python. ✅ Infinite Tenant Scaling: The "Schema-per-tenant" approach makes Django Migrations a nightmare once you hit 500+ clients. RLS keeps your database catalog lean. You get enterprise-grade isolation with the simplicity of a single shared schema. ✅ Tenant-Blind Development: It removes the cognitive load of repetitive filtering. Your Django Views and Serializers stay clean and "tenant-agnostic." Your team can focus on shipping features without the constant anxiety of cross-tenant data leaks. This is Part 1, in Part 2 I’ll break down the technical "Proof of Work"—the exact bridge between Django Middleware and Postgres session variables. How are you handling isolation? Still trusting every developer to remember that .filter() call?
To view or add a comment, sign in
-
While working with NestJS on backend development, I’ve been exploring how ORM tools streamline database interactions 👇 ORM (Object Relational Mapping) allows us to interact with the database using objects and repository methods, instead of writing raw SQL queries for every operation. For example: 🔹 Using raw SQL: ```id="sql1" SELECT * FROM users WHERE id = 1; ``` 🔹 Using ORM in NestJS (TypeORM): ```id="orm1" userRepository.findOne({ where: { id: 1 } }); ``` From my experience so far: ✔ Accelerates development for standard CRUD operations ✔ Improves code readability and maintainability ✔ Integrates seamlessly with frameworks like NestJS However: • For complex queries, raw SQL provides better control • ORM abstractions can sometimes hide performance bottlenecks So I try to follow a balanced approach: 👉 Use ORM for productivity and cleaner architecture 👉 Use raw SQL when performance and fine-grained control are critical Continuing to explore and refine this balance 🚀 #ORM #NestJS #SQL #Backend #FullStack #SoftwareDevelopment
To view or add a comment, sign in
-
-
🚀 Day 53–71: The Phase Where Everything Started Making Sense Until now, I was writing code… But in these days, I finally understood how real applications actually work behind the scenes. 👨🏫 Thanks to Siva Kumar Sir at DevGnan for guiding us step by step. 💭 What changed in these days? I moved from just frontend thinking → to understanding the complete flow of an application From clicking a button… to knowing where that data goes, how it travels, and where it gets stored. 🧠 Concepts I Explored ⚡ How backend works using Node.js ⚡ Building servers with Express.js ⚡ Sending responses from backend ⚡ Connecting frontend to backend (real communication) ⚡ Introduction to MongoDB ⚡ Using Mongoose to structure and store data 🔥 What I Built Instead of just learning theory, I implemented a real signup system ✔️ User enters details in frontend ✔️ Data travels through API ✔️ Backend handles it properly ✔️ Database stores it successfully 👉 For the first time, I felt like I built something real, not just practice code. 🔄 The Flow I Now Understand Clearly Frontend → Request → Server → Database → Stored Data Simple line… but powerful understanding 💡 📌 Big Realization Backend is not just code. It’s the brain of the application. And once you understand the flow, everything starts connecting. This phase gave me a lot of confidence. Now I’m not just learning… I’m building with understanding 🚀 #MERNStack #BackendDevelopment #NodeJS #ExpressJS #MongoDB #CodingJourney #FullStackDeveloper
To view or add a comment, sign in
-
𝗠𝘆 𝗳𝗶𝗿𝘀𝘁 𝗲𝗻𝗰𝗼𝘂𝗻𝘁𝗲𝗿 𝘄𝗶𝘁𝗵 𝗗𝗿𝗶𝘇𝘇𝗹𝗲 𝗢𝗥𝗠 🚀 As a developer primarily focused on the frontend, the backend always felt like a bit of a black box to me. Recently, I got the opportunity to build a project from scratch using 𝗣𝗼𝘀𝘁𝗴𝗿𝗲𝗦𝗤𝗟 + 𝗗𝗿𝗶𝘇𝘇𝗹𝗲 𝗢𝗥𝗠, and honestly—it changed my perspective on backend development. I didn’t have strong SQL experience, but Drizzle made the transition surprisingly smooth. 🔍 𝗪𝗵𝗮𝘁 𝗺𝗮𝗱𝗲 𝗗𝗿𝗶𝘇𝘇𝗹𝗲 𝘀𝘁𝗮𝗻𝗱 𝗼𝘂𝘁 𝗳𝗼𝗿 𝗺𝗲 🧩 𝗙𝗲𝗲𝗹𝘀 𝗹𝗶𝗸𝗲 𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 You define your database schema using plain TypeScript. No context switching, no learning a completely new DSL just to create tables. ⚡ 𝗜𝗻𝘀𝘁𝗮𝗻𝘁 𝘁𝘆𝗽𝗲 𝘀𝗮𝗳𝗲𝘁𝘆 If I made a mistake in a query, my editor flagged it immediately—just like catching a prop error in React. 🪶 𝗟𝗶𝗴𝗵𝘁𝘄𝗲𝗶𝗴𝗵𝘁 & 𝗳𝗮𝘀𝘁 Drizzle acts as a thin layer over SQL rather than a heavy abstraction, keeping performance snappy. 🤔 𝗪𝗵𝗲𝗻 𝘀𝗵𝗼𝘂𝗹𝗱 𝘆𝗼𝘂 𝗰𝗼𝗻𝘀𝗶𝗱𝗲𝗿 𝗶𝘁? 👉 If you love TypeScript and want your database layer to feel like a natural extension of your app 👉 If you’re building for serverless or edge environments where bundle size and speed matter 👉 If you want to grow into SQL gradually instead of being forced into complex ORM patterns #TypeScript #DrizzleORM #PostgreSQL #WebDevelopment
To view or add a comment, sign in
-
-
🚀 Built My Developer Portfolio with FastAPI & MongoDB Atlas This project helped me practice building a **full-stack application** where projects are dynamically fetched from the database and visitors can send messages through a contact form. 🧩 Key Features • Dynamic project listing fetched from MongoDB Atlas • Contact form that stores messages in the database • Fast and lightweight backend using FastAPI • Clean and responsive UI 🛠 Tech Stack FastAPI | MongoDB Atlas | HTML | CSS | JavaScript | Jinja2 Building this project was a great learning experience in creating a **real-world backend with database integration**. 🔗 GitHub Repository https://lnkd.in/gAyUji7e 🔗 Live https://lnkd.in/gPjhMBXs Next, I’m planning to improve this project by: • Dockerizing the application • Adding CI/CD with GitHub Actions • Deploying it to the cloud I’d love to hear your feedback! 🚀 #FastAPI #Python #WebDevelopment #MongoDB #BackendDevelopment #PortfolioProject #LearningInPublic
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development