A full-stack web application built using React, Node.js, Express, MongoDB, and GraphQL with Apollo Client. It allows users to manage clients and projects seamlessly with a modern and interactive interface.
- 📋 Client List – View all registered clients.
- 📁 Project List – View all projects with detailed information.
- ➕ Add Client / Add Project – Easily create new clients or projects.
- ✏️ Edit Project – Update the project's status, name, or associated client.
- ❌ Delete Client – Removes a client and all associated projects (cascading delete).
- ❌ Delete Project – Remove individual projects as needed.
- 🔗 GraphQL API – Efficient data queries and mutations using Apollo Client.
- 💻 Responsive UI – Works well on desktop and mobile.
- React.js
- Apollo Client
- GraphQL
- HTML5, CSS3
- Node.js
- Express.js
- MongoDB
- GraphQL
project-mgnt/
├── client/ # React frontend using Apollo Client
│ └── src/
│ ├── components/
│ ├── mutations/ # GraphQL mutations
│ ├── queries/ # GraphQL queries
│ └── ...
├── server/ # Express + GraphQL backend
│ ├── models/ # Mongoose schemas
│ ├── schema/ # GraphQL schema & resolvers
│ └── ...
├── package.json
└── README.mdgit clone https://github.com/hafiz229/project-mgnt.git
cd project-mgnt# Backend
cd server
npm install
# Frontend
cd ../client
npm installCreate a .env file in the server directory:
MONGO_URI=your_mongodb_connection_string
PORT=5000# In server directory
npm run dev
# In client directory (in a new terminal)
npm start- Server:
http://localhost:5000/graphql - Client:
http://localhost:3000
If a client is deleted, all projects associated with that client are automatically deleted on the backend. This is handled in the GraphQL resolvers for data consistency.
- Add authentication & user roles
- Implement filtering or search
- Add pagination for large lists
This project is licensed under the MIT License.