A modern, full-stack web application for managing tasks, built to demonstrate the power of GraphQL APIs combined with a sleek React frontend.
🌍 Live Demo: https://yashraj-graphql-api.onrender.com
- User Authentication: Secure user registration and login using JSON Web Tokens (JWT).
- Task Management: Create, read, update, and delete (CRUD) tasks.
- Task Timers: Includes built-in timer functionality for individual tasks.
- GraphQL API: Robust and efficient data fetching using Apollo Server and GraphQL schema definitions.
- Modern UI: A responsive, visually appealing interface styled with Tailwind CSS and Lucide React icons.
- Single Deployment: The Express backend is configured to serve the Vite-built static React application in production, making it easy to deploy as a single service.
Frontend:
- React - UI Library
- Vite - Frontend Build Tool
- Apollo Client - GraphQL Client for React
- Tailwind CSS - Utility-first CSS framework
Backend:
- Node.js & Express - Web Server
- Apollo Server - GraphQL Server
- SQLite3 - Relational Database
- JSON Web Token (JWT) - Authentication
Make sure you have Node.js and npm installed on your machine.
- Install dependencies for both backend and frontend:
npm run install
To run the application locally, you'll need to start both the frontend and backend servers.
Start the Backend: Open a terminal and run:
npm startThe GraphQL server will be available at http://localhost:4000/graphql
Start the Frontend: Open a new terminal and run:
cd frontend
npm run devThe React app will be available on your local Vite dev server.
This project is configured for easy deployment on platforms like Render using the included render.yaml blueprint.
When building for production:
npm run buildwill compile the React frontend into thefrontend/distdirectory.- The Node.js Express server is configured to serve these static files alongside the
/graphqlendpoint, meaning you only need to host a single Web Service.