TaskOps is a full-stack task management application designed to streamline productivity and collaboration. It enables users to create, update, and manage tasks efficiently while supporting OAuth login, JWT authentication, and real-time GraphQL APIs via Apollo Federation.
- User registration and login (Local + Google OAuth)
- Create, update, and delete tasks
- View user profiles and task details
- GraphQL API with Apollo Federation for modular architecture
- Responsive frontend built with Next.js
- Secure authentication using JWT and OAuth 2.0
- PostgreSQL database integration for persistent storage
- Real-time data fetching with GraphQL queries and mutations
-
Microservices architecture with Spring Boot services
-
Apollo Federation for modular GraphQL subgraphs
-
Next.js frontend for server-side rendering and React hooks
-
JWT + OAuth for authentication and authorization
-
PostgreSQL as relational database
-
Architectre Diagram
- Service Diagram
- Local login with email/password
- Google OAuth login
- JWT-based token authentication for API access
userstable: stores user information, OAuth provider, and credentialstaskstable: stores tasks, owner reference, and status- Relationships:
- One-to-many: User → Tasks
server/ # Spring Boot backend services
├── auth-service # Authentication service
├── task-service # Task management service
frontend/ # Next.js frontend
apollo-gateway/ # GraphQL gateway, typeDefs & resolvers
subgraphs/ # GraphQL subgraphs for modular architecture
├── auth-subgraph # Auth subgraph
└── task-subgraph # Task subgraph
- Java 17+
- Node.js 18+
- PostgreSQL 14+
- Yarn or npm
- Git
- Navigate to backend services:
auth-servicetask-service
- Build and run each service:
./mvnw clean install
./mvnw spring-boot:run- Navigate to frontend:
npm install
npm run dev- Subgraphs: auth-subgraph, task-subgraph
- Apollo Gateway:
node index.js
