branber.io
Back to projects

Journilog

An AI journaling app with Cognito auth, AppSync GraphQL + DynamoDB, a GPT-powered insights generator, PIN-lock privacy, and a rich-text editor.

Last pushed Mar 2025TypeScriptCSSJavaScript
View on GitHub

About this project

What it is

A private journaling application built on AWS Amplify Gen 2. Authentication is handled by Cognito with a full sign-up/sign-in/forgot-password/MFA flow. Journal entries are stored in DynamoDB via an AppSync GraphQL API defined in the Amplify data resource. A Lambda function integrates with OpenAI's GPT API to analyze journal entries and surface emotional and thematic insights. The Next.js client includes a PIN-lock screen for device privacy, a rich-text editor with table creation and custom toolbar controls, Redux state management, and a Google login option. The entire backend (auth, API, data, functions) is defined in TypeScript via Amplify Gen 2 CDK constructs.

Engineering highlights

  • AWS Amplify Gen 2 backend: Cognito auth, AppSync GraphQL API, DynamoDB data, Lambda functions — all defined in TypeScript
  • GPT/OpenAI insights Lambda: reads journal entry content, returns AI-generated emotional and thematic analysis
  • PIN-lock screen (client-side) for device-level privacy before accessing journal content
  • Rich-text editor with custom MenuBar, table creation, and formatting controls
  • Redux state management for journal entries and API state
  • Full auth flow: sign-up with email confirmation, login, forgot-password, Google OAuth

Stack

Next.jsTypeScriptAWS Amplify Gen 2AWS CognitoAWS AppSyncAWS DynamoDBAWS LambdaOpenAI APIRedux