GradFlow is a full-stack application built with a microservices architecture, featuring:
- React + TypeScript frontend
- Node.js/TypeScript backend services
- Python file management service
- Docker container orchestration
- JWT-based authentication system
| Service | Technology | Functionality |
|---|---|---|
| API Gateway | TypeScript | Central routing, authentication |
| Auth Service | TypeScript | JWT authentication, role management |
| File Service | Python | File upload/download, metadata management |
| User Service | TypeScript | CRUD operations, search functionality |
- User management dashboard
- File upload/download interface
- Responsive design
- API integration via Axios
- Frontend: React 18, TypeScript, Vite, Axios
- Backend: Node.js, Express, TypeScript, Python 3.11
- Database: PostgreSQL (Users), File System (Files)
- Infrastructure: Docker, Docker Compose
- Authentication: JWT, RBAC (Role-Based Access Control)
# Clone repository
git clone https://github.com/yourusername/gradflow.git
cd gradflow
# Install dependencies
npm installCreate .env files with these required variables:
# API Gateway
JWT_SECRET=your_jwt_secret_key
DATABASE_URL=postgres://user:password@host:port/dbname
# File Service
FILE_STORAGE_PATH=./file-storage
MAX_FILE_SIZE=10485760 # 10MB# Start all services with Docker
docker-compose up --build
# Access services:
- Frontend: http://localhost:3000
- API Gateway: http://localhost:8000
- Swagger Docs: http://localhost:8000/api-docsAll backend services include Swagger documentation available at:
/api-docs endpoint for each service
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details
