Senior Node.js + React Developer — Meeting Room Booking Service

Posted yesterday

Worldwide

Summary

Project Overview We need a small meeting-room booking service built end-to-end: Node.js backend + React frontend. The core challenge is not the CRUD itself, but correctly handling booking conflicts, concurrent requests, and edge cases — this requires someone with real experience reasoning about concurrency and data consistency, not just wiring up basic endpoints. Scope of Work Backend (Node.js — Express/Fastify/NestJS, your choice): Rooms with id, name, capacity. Bookings with roomId, title, startTime, endTime, createdBy. Endpoints: GET /rooms GET /rooms/:id/bookings?from=&to= POST /bookings DELETE /bookings/:id Core requirement: overlapping bookings for the same room must never be allowed, even when two creation requests arrive at nearly the same time. Use whatever mechanism you consider best (locking, transactions, DB constraints, optimistic checks) and document the reasoning. Validation: startTime endTime, no bookings in the past, max booking duration of 4 hours. Storage of your choice (in-memory with simulated concurrency, SQLite, or Postgres). Frontend (React): List of rooms. Day view of bookings for a selected room. Booking creation form with client-side validation. Proper handling of conflict errors from the API, including conflicts that only appear after the form looked valid client-side (race condition with another user). Loading/error states using hooks/context only — no Redux/Zustand needed. Edge Cases to Handle Two near-simultaneous booking requests for the same room and time slot. Back-to-back bookings (end of one = start of another) — this is not a conflict. Deleting a booking that's already been deleted or doesn't exist. Invalid time ranges (end before start, negative duration). Deliverables Git repository with full source code. Minimal backend test suite covering the conflict-detection logic. README with setup instructions, an explanation of the concurrency approach, and suggested next steps. Requirements Strong hands-on experience with Node.js and React. Comfortable reasoning about concurrency and data consistency, not just standard CRUD. TypeScript is a plus, not mandatory. Clear written communication in English.

  • Less than 30 hrs/week
    Hourly
  • 1-3 months
    Duration
  • Expert
    Experience Level
  • $18.00

    -

    $30.00

    Hourly
  • Remote Job
  • Complex project
    Project Type
Skills and Expertise
Node.js
React
Activity on this job
  • Proposals:50+
  • Last viewed by client:yesterday
  • Interviewing:
    0
  • Invites sent:
    0
  • Unanswered invites:
    0
About the client
Member since Mar 21, 2023
  • Poland
    Kraków5:34 AM
  • $3.4K total spent
    21 hires, 0 active
  • 156 hours
  • Tech & IT
    Small company (2-9 people)

Explore similar jobs on Upwork

Full-Stack Engineer for 8-Week AI SaaS MVPHourly‐ Posted 4 weeks ago
Full-Stack Development
React
Next.js
TypeScript
API Integration
Node.js
PostgreSQL
JavaScript
Supabase
Mobile Device Management Software
FastAPI
Python Asyncio
Android Debug Bridge

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo