SyncBoard is a full-stack, production-ready task management platform designed for real-time workflow tracking. Built using a serverless architecture on Vercel with a cloud-hosted MongoDB cluster, this application focuses on fast data hydration, secure environments, and strict error handling.
π Live Production Link: https://sync-board-eight.vercel.app/
- Frontend: React.js, Tailwind CSS (Responsive Layouts)
- Backend: Node.js, Express.js (RESTful API Architecture)
- Database: MongoDB Atlas, Mongoose ODM
- Deployment: Vercel (Serverless Functions)
This project implements advanced serverless patterns to ensure high availability and structural reliability under load:
In a serverless environment (like Vercel), database connections can easily bottleneck due to frequent container lifecycle changes (cold starts).
- Solution: Implemented global connection state caching inside Mongoose initialization to reuse active database sockets across independent API function executions, completely eliminating critical timeout errors (
500 Internal Server Error).
Prevented common frontend-backend data mismatch by enforcing strict custom dynamic fetching logic using MongoDB ObjectIDs. This guarantees that UI updates reflect the cloud cluster data state instantly with zero ghost arrays or blank loading screens.
Designed centralized try-catch middleware wrappers across all routing boundaries. The API intercepts standard database connection drops and provides clean, structured JSON tracking messages (bad auth, gateway error) instead of letting raw stack traces leak to the client console.
To run this project locally, ensure you have Node.js and npm installed:
- Clone the repository:
git clone [https://github.com/irajimran5-bot/sync-board.git](https://github.com/irajimran5-bot/sync-board.git) cd sync-board - Install backend and frontend dependencies:
npm install-
Configure Environment Variables: Create a .env file in your root folder and configure your secure MongoDB cloud URI: MONGO_URI=mongodb+srv://:@cluster.mongodb.net/syncboard PORT=5000
-
Start the development server:
npm run dev