A freelance project marketplace platform with real-time communication, offline support, and a microservices architecture. Built using TypeScript.
- 👤 Freelancer and Client user roles
- 🔐 Secure login and signup system using Passport JS and JWT
- 🛡️ Protected routes for authenticated users
- 📋 Paginated project listing
- ✏️ Full CRUD operations for projects and bids
- 📝 Rich text editor with AI autocomplete suggestions
- 📎 File upload capability for projects
- 💬 Commenting system on projects
- 🤝 Freelancers can submit bids on projects
- 📨 Real-time chat between client and freelancer after bid acceptance
- ♾️ Infinite scroll with lazy loading for chat history
- 🔄 Offline-first architecture for project/bid submissions
- 💾 Local storage of data using Redux Persist
- 🔁 Automatic synchronization when back online
- 📱 Progressive Web App (PWA) with cached pages/data
- 🔔 Real-time push notifications
- 🎯 Custom toast implementation
- React.js using Vite
- Redux & Redux Saga for backend sync
- Redux Persist for offline data persistence
- React Quill with AI autocomplete
- Progressive Web App (PWA) implementation
- Microservices Architecture:
- GraphQL Server: Real-time features (notifications, chat)
- Express Server: Authentication, CRUD operations
- PostgreSQL with Pub/Sub for real-time features
- Sentry integration for error reporting (frontend & backend)
- AWS EC2 hosting
- Docker containerization
- Nginx as reverse proxy
- Backend Deployment: Docker-based deployment using GitHub Actions pipeline
- Frontend Deployment: GitHub artifacts with GitHub Actions pipeline
- Node.js (v18 or later)
- Docker
- PostgreSQL
- Clone the repository
git clone https://github.com/omar-sarfraz/projects-listing
- Install Dependencies
yarn install
- Frontend
cd React_Project
cp .env-example .env # Create env file
npm run dev
- Backend services
cd ..
cp .env-example .env
docker-compose up
This project is licensed under the MIT License.