feat: Add Interview Streak Tracking Feature (#625) - #1513
Conversation
|
Thank you for your contribution! To keep reviews manageable and maintain repository quality, contributors may have a maximum of 3 open Issues and 3 open Pull Requests at any given time. Please wait until one of your existing submissions is reviewed or closed before opening additional ones. If you believe this was closed by mistake, feel free to contact the maintainers. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (14)
📝 WalkthroughWalkthroughThe PR adds interview streak tracking across session creation and the dashboard. It also adds optional Google Calendar OAuth, encrypted token storage, protected API routes, connection status reporting, and event synchronization. ChangesInterview streak tracking
Google Calendar integration
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant googleCalendarRoutes
participant googleCalendarController
participant googleCalendarService
participant GoogleOAuth
participant User
Client->>googleCalendarRoutes: Request Calendar connection
googleCalendarRoutes->>googleCalendarController: Call connectGoogleCalendar
googleCalendarController->>googleCalendarService: Generate authorization URL
googleCalendarService-->>Client: Return authorization URL
Client->>GoogleOAuth: Approve Calendar access
GoogleOAuth->>googleCalendarRoutes: Redirect with code and state
googleCalendarRoutes->>googleCalendarController: Call handleGoogleCalendarCallback
googleCalendarController->>googleCalendarService: Exchange authorization code
googleCalendarService->>GoogleOAuth: Return OAuth tokens
googleCalendarController->>User: Store encrypted tokens and metadata
Possibly related PRs
Suggested reviewers: ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
|
||
| const router = express.Router(); | ||
|
|
||
| router.get("/connect", protect, connectGoogleCalendar); |
| const router = express.Router(); | ||
|
|
||
| router.get("/connect", protect, connectGoogleCalendar); | ||
| router.get("/callback", handleGoogleCalendarCallback); |
|
|
||
| router.get("/connect", protect, connectGoogleCalendar); | ||
| router.get("/callback", handleGoogleCalendarCallback); | ||
| router.get("/status", protect, getGoogleCalendarStatus); |
| router.get("/connect", protect, connectGoogleCalendar); | ||
| router.get("/callback", handleGoogleCalendarCallback); | ||
| router.get("/status", protect, getGoogleCalendarStatus); | ||
| router.post("/events", protect, syncGoogleCalendarEvent); |
| router.get("/connect", protect, connectGoogleCalendar); | ||
| router.get("/callback", handleGoogleCalendarCallback); | ||
| router.get("/status", protect, getGoogleCalendarStatus); | ||
| router.post("/events", protect, syncGoogleCalendarEvent); |
|
@Aasritha-sure Please take look github actions suggestions, once it is addressed, I'll merge this PR |
Summary
This PR introduces an Interview Streak Tracking feature to encourage users to practice consistently.
Changes Made
Fixes #625
Looks good to me. Ready to merge.