SignFlix is an accessible video streaming platform with integrated sign language interpretation for the deaf and hard-of-hearing community.
The project is a monorepo containing two main applications:
site: A Next.js application that serves as the frontend for SignFlix. It includes user authentication, video streaming, and a creator studio for uploading and managing videos.conversion2: A Node.js application responsible for processing uploaded videos. It converts English captions to ASL, generates pose data for sign language simulation, and manages the video processing queue.
- Framework: Next.js
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Shadcn/ui
- ORM: Prisma
- Authentication: NextAuth.js
- Runtime: Node.js
- Framework: Express
- Language: TypeScript
- Cloud Storage: Azure Blob Storage
- Queueing: Azure Queue Storage
- AI: Google Gemini API
- Node.js (v18 or later)
- npm
- An Azure account with Storage (Blob and Queue) services enabled.
- A Google account with access to the Gemini API.
-
Clone the repository:
git clone https://github.com/jtuluve/SignFlix cd SignFlix -
Configure the
siteapplication:-
Navigate to the
sitedirectory:cd site -
Install dependencies:
npm install -
Create a
.envfile and add the following environment variables:DATABASE_URL="your_database_url" AZURE_STORAGE_ACCOUNT="your_azure_storage_account" AZURE_BLOB_SAS_TOKEN="your_azure_blob_sas_token" AZURE_QUEUE_CONNECTION_STRING="your_azure_queue_connection_string" QUEUE_API_URL="your_queue_api_url" NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your_nextauth_secret"
-
-
Configure the
conversion2application:-
Navigate to the
conversion2directory:cd ../conversion2 -
Install dependencies:
npm install -
Create a
.envfile and add the following environment variables:GEMINI_API_KEY="your_gemini_api_key" AZURE_QUEUE_CONNECTION_STRING="your_azure_queue_connection_string" VIDEO_QUEUE_NAME="your_video_queue_name"
-
-
Start the
siteapplication:-
Navigate to the
sitedirectory. -
Run the development server:
npm run dev
The application will be available at
http://localhost:3000. -
-
Start the
conversion2application:-
Navigate to the
conversion2directory. -
Build the application:
npm run build -
Start the server:
npm start
The conversion service will be running and listening for requests.
-
Contributions are welcome! Please feel free to open an issue or submit a pull request.