Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Nexera

Swift Platform SwiftUI Firebase OpenAI

Nexera is an AI-powered career development iOS app that creates personalized learning paths, skill assessments, and micro-learning content based on a user's professional profile and resume. It combines OpenAI's GPT-4o-mini model with Firebase to deliver a tailored career growth experience.


What It Does

Nexera guides professionals through a structured career development workflow:

  1. Authenticate via email/password or Google Sign-In (Firebase Auth).
  2. Onboard by entering professional details (name, job title, seniority level, workplace) and optionally uploading a CV/resume (PDF).
  3. Select a career goal from three AI-generated suggestions personalized to the user's profile, or enter a custom goal.
  4. Take a skill assessment — a 10-question multiple-choice test generated by GPT-4o-mini, targeting competencies relevant to the user's role and seniority.
  5. Receive a skill analysis — AI-driven recommendations on which skills to develop based on test results, CV, and career goal.
  6. Follow a learning path — a step-by-step action plan with resources generated by the AI.
  7. Consume microbites — short, AI-generated educational articles (5-15 min reads) that teach concepts the user needs to reach their career goal.
  8. Chat with an AI assistant — a conversational interface powered by GPT-4o-mini that is aware of the user's full profile and provides personalized responses.

Key Features

Feature Description
AI-Generated Skill Assessments 10-question MCQ tests dynamically generated per role and level via OpenAI
Personalized Career Goals Three AI-suggested career paths based on the user's professional profile
CV Upload & Analysis PDF document picker with AI-powered CV analysis for test personalization
Skill Gap Analysis Post-assessment recommendations on skills to learn or improve
Learning Path Generation Structured, actionable learning roadmaps created by AI
Microbites Learning Bite-sized educational articles generated on-demand with local caching
Profile-Aware Chat Conversational AI assistant with full context of the user's profile
Google Sign-In OAuth-based authentication alongside email/password
Account Deletion Full account removal (Firebase Auth + Firestore data)

Architecture

Pattern: View + ViewModel + Service Layer

  • Views (ContentView, TestView, ProfileView, etc.) — SwiftUI views handling presentation and user interaction.
  • ViewModels (TestViewModel, ProfileManager) — ObservableObject classes managing UI state and coordinating between views and services.
  • Services (OpenAIService, ChatController) — Networking and AI integration layers that encapsulate API calls.
  • Models (Profile, Question, Microbite, ChatMessage) — Codable data structures, with Profile using Firestore's @DocumentID.

Dependency Injection

Authentication is abstracted behind protocols (AuthenticationService, AuthenticationServiceProtocol) with concrete Firebase implementations and mock implementations for testing.

Navigation Flow

AuthenticationView
    |
OnboardingView (OnboardingMainView -> OnboardingCVView)
    |
CareerGoalsView (AI-generated goal selection)
    |
ContentView (Main chat interface)
    |--- TestView (Skill assessment)
    |--- ProfileView
            |--- CareerGoalView
            |--- SkillAnalysisView
            |--- LearningPathView
            |--- MicrobitesView

Tech Stack

Layer Technology
Language Swift 5.0
UI Framework SwiftUI
Minimum Target iOS 18.4
AI/LLM OpenAI GPT-4o-mini via MacPaw/OpenAI Swift client + direct REST API
Authentication Firebase Auth (email/password + Google Sign-In)
Database Cloud Firestore
Analytics Firebase Analytics
Crash Reporting Firebase Crashlytics
Package Manager Swift Package Manager
Async Model Swift Concurrency (async/await, Task)

Getting Started

Prerequisites

  • Xcode 16+
  • iOS 18.4+ simulator or device
  • OpenAI API key
  • Firebase project with Authentication and Firestore enabled

Setup

  1. Clone the repository:

    git clone https://github.com/hamza5645/Nexera-iOS.git
    cd Nexera-iOS
  2. Configure your OpenAI API key (choose one method):

    Option A — Environment variable:

    export OPENAI_API_KEY="sk-your-key-here"

    Option B — Local plist (debug only):

    cp Nexera/APIKeys.plist.template Nexera/APIKeys.plist
  3. Open the workspace:

    open Nexera.xcworkspace
  4. Build and run on a simulator or device (iOS 18.4+).


Testing

Target Contents
NexeraTests Unit tests for authentication, chat controller parsing, onboarding logic
NexeraTests_two Additional authentication and onboarding tests
NexeraUITests UI tests for authentication and onboarding flows

Security

  • API keys are never hardcoded in source control.
  • APIKeys.plist is listed in .gitignore.
  • The Config.swift module loads keys securely from environment variables, Xcode scheme settings, or a local plist (debug only).

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages