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.
Nexera guides professionals through a structured career development workflow:
- Authenticate via email/password or Google Sign-In (Firebase Auth).
- Onboard by entering professional details (name, job title, seniority level, workplace) and optionally uploading a CV/resume (PDF).
- Select a career goal from three AI-generated suggestions personalized to the user's profile, or enter a custom goal.
- 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.
- Receive a skill analysis — AI-driven recommendations on which skills to develop based on test results, CV, and career goal.
- Follow a learning path — a step-by-step action plan with resources generated by the AI.
- Consume microbites — short, AI-generated educational articles (5-15 min reads) that teach concepts the user needs to reach their career goal.
- 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.
| 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) |
- Views (
ContentView,TestView,ProfileView, etc.) — SwiftUI views handling presentation and user interaction. - ViewModels (
TestViewModel,ProfileManager) —ObservableObjectclasses 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) —Codabledata structures, withProfileusing Firestore's@DocumentID.
Authentication is abstracted behind protocols (AuthenticationService, AuthenticationServiceProtocol) with concrete Firebase implementations and mock implementations for testing.
AuthenticationView
|
OnboardingView (OnboardingMainView -> OnboardingCVView)
|
CareerGoalsView (AI-generated goal selection)
|
ContentView (Main chat interface)
|--- TestView (Skill assessment)
|--- ProfileView
|--- CareerGoalView
|--- SkillAnalysisView
|--- LearningPathView
|--- MicrobitesView
| 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) |
- Xcode 16+
- iOS 18.4+ simulator or device
- OpenAI API key
- Firebase project with Authentication and Firestore enabled
-
Clone the repository:
git clone https://github.com/hamza5645/Nexera-iOS.git cd Nexera-iOS -
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
-
Open the workspace:
open Nexera.xcworkspace
-
Build and run on a simulator or device (iOS 18.4+).
| 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 |
- API keys are never hardcoded in source control.
APIKeys.plistis listed in.gitignore.- The
Config.swiftmodule loads keys securely from environment variables, Xcode scheme settings, or a local plist (debug only).