nicmart-dev / linguistnow

LinguistNow simplifies the hassle of finding available linguists for translation projects.
https://linguistnow.netlify.app
1 stars 1 forks source link
airtable brainstation capstone-project express localization n8n-workflow oauth2 react react-intl tailwindcss tanstack-table

Table of content

Overview
Install
Implementation
Roadmap
Nice-to-haves
Behind the scene

LinguistNow

Overview

LinguistNow simplifies the hassle of finding available linguists for translation projects.

Problem

Linguists, often freelancers, work for many translation agencies or language service providers (LSPs). Managing tasks based on their schedule is a nightmare both for them and the project managers assigning them work (ie. the "client").

Why?

User Profile

Features

  1. User Authentication:

    • Secure login and registration for project managers and linguists using Google OAuth2.
    • Role-based access control.
  2. Linguist Google Calendar profile

    • Linguists select their calendars in user profile
  3. Project Scheduling:

    • Project managers can find available linguist, using CRUD operations to add, edit, delete, and view their profiles.
    • Get linguist availability from Google Calendar using n8n integration
  4. Localization

    • Using react-intl to support English, French, and Simplified Chinese interfaces, with language toggle functionality.

Install

To install and run the LinguistNow application, follow these steps:

Follow the steps on https://github.com/nicmart-dev/linguistnow/wiki/Install-instructions

Implementation

Tech Stack
GitHub folder structure
APIs
Sitemap, User journey and Screenshots
Data
Auth

Tech Stack

Note: see design documents in the Wiki here for implementation details.

GitHub folder structure

For ease of maintenance as a solo developer, I created a single repository for client and server.

your-repo/
│
├── client/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── ...
│ ├── public/
│ └── ...
│
├── server/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── ...
│
├── n8n/
│ ├── workflows/
│ ├── settings/
│ └── ...
│
├── README.md
├── .gitignore
├── package.json
└── ...

APIs

I am using the following external APIs:

Sitemap, User journey and Screenshots

See user journey, and sitemap with screenshots in the Wiki here.

Data

I am using a single Users table in Airtable. See Airtable data structure documentation.

alt text

Auth

The app is using Google OAuth2 authentication. See related design information here.

Roadmap

I am using GitHub Project to manage the roadmap and Kanban board. Please see the public roadmap here.

alt text

Nice-to-haves

Please see the nice to have backlog list

Examples:

alt text

Behind the scene

About me

This capstone project was developed by Nicolas Martinez as part of the 3-month Web Development Diploma Program at BrainStation. It serves as a demonstration of newly acquired modern development skills, following a 20+ year journey of providing customer solutions.

My background is in the Localization & Translation industry spanning two decades, coupled with 7 years as a Technical Product Manager overseeing workflow management and productivity-oriented products.