Phase 6: Joined Up
Connect the halves. Write the contract down first: exact JSON for one success and one error, field names, casing, date format. Then wire every screen to real endpoints and handle every status honestly, especially the difference between 401 and 403. Test the auth flows people forget: expiry mid-session, a deep link before signing in, signing out in one tab with another open, and the moment before the app knows who you are. Each one is a real bug in most student projects.
Built it in both languages?
Mark it done once your Python and JavaScript versions both run correctly. Honesty here is what makes the dashboard useful to you.