Simplifying the hassle of finding available linguists for translation projects.
Linguists (freelance translators) often work with multiple translation agencies or language service providers (LSPs). Managing availability across all clients is challenging:
- They manually enter availability in multiple systems
- They must remember to notify each client about holidays
- Availability quickly becomes outdated without a single source of truth
- Some linguists accept work before checking their calendar, causing delays when conflicts arise
📽️ See the 3-minute pitch slides
LinguistNow connects to linguists' Google Calendars to provide real-time availability information to project managers, eliminating manual availability tracking.
- Project Managers - Add linguists and instantly see who's available for translation projects
- Linguists - Connect their Google Calendar once and let availability sync automatically
| Feature | Description |
|---|---|
| 🔐 Authentication | Secure Google OAuth2 login with role-based access control |
| 📅 Calendar Integration | Real-time availability from Google Calendar |
| 👥 Linguist Management | CRUD operations for managing linguist profiles |
| 🌍 Internationalization | Support for 11 languages including English, French, Spanish, German, and more |
| 🔒 Secure Token Storage | OAuth tokens stored in HashiCorp Vault |
Follow the Installation Guide to set up the application locally.
For Docker deployment, see Deploy Locally with Docker.
- React 19 with Vite
- React Router v7
- Tailwind CSS v4
- shadcn/ui components
- TanStack Table
- i18next for internationalization
- Node.js with Express.js
- TypeScript (strict mode)
- HashiCorp Vault for secure token storage
- n8n for scheduled token refresh
- Database: Airtable
- Authentication: Google OAuth2
- Calendar API: Google Calendar freeBusy API
- Frontend: Netlify
- Backend: Render
- Infrastructure: Docker Compose
linguistnow/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── i18n/ # Internationalization
│ └── public/
├── server/ # Express backend
│ ├── controllers/
│ ├── services/ # Business logic
│ ├── routes/
│ └── utils/
├── shared/ # Shared TypeScript types
├── n8n/ # Workflow automation configs
├── docs/ # Documentation
└── docker-compose.yml
Design Principles: Component-based design with DRY principles, API-first development, and TDD.
See Architecture Overview for details.
| Document | Description |
|---|---|
| Install Instructions | Local development setup |
| Architecture Overview | System architecture |
| Dashboard Design | Dashboard feature design |
| Linguist Settings Design | Settings page feature design |
| Google Calendar Integration | Calendar API implementation |
| Vault Integration | Secure token storage |
| Airtable Data Structure | Database schema |
| User Journey & Sitemap | UX documentation |
| Google Authentication | OAuth2 flow |
Track progress on the GitHub Project Board.
- Multi-calendar provider support (Outlook, Apple Calendar, Calendly)
- Bulk availability checking
- Advanced timezone handling
- Email notifications
See the backlog for the complete list.
This capstone project was developed by Nicolas Martinez as part of the Web Development Diploma Program at BrainStation.
With 20+ years in the Localization & Translation industry and 7 years as a Technical Product Manager, this project combines domain expertise with modern development practices.
MIT