Proof beats claims
Your repo should show working auth, not just say it has auth. A recruiter or judge should be able to clone it, add env values, run it, sign in, and see protected routes behave correctly.
Make it runnable
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done
Add env example
Create a sample env file with names only. Never paste real OAuth client secrets, JWT secrets, database passwords, or production URLs with credentials.
# .env.example
DATABASE_URL="your_database_url_here"
SESSION_SECRET="use_a_long_random_secret_here"
GOOGLE_CLIENT_ID="your_google_client_id_here"
GOOGLE_CLIENT_SECRET="your_google_client_secret_here"
NEXTAUTH_URL="http://localhost:3000"Write the README
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done
README auth section
Use direct language. The goal is to help someone inspect your choices fast.
## Auth overview
Sign-in methods:
- Email and password
- Google OAuth
Protected routes:
- /dashboard requires a signed-in user
- /api/notes requires a signed-in user
- /login is public
Security choices:
- Passwords are hashed with bcrypt before storage
- Session is stored in an httpOnly cookie
- Cookie uses secure in production and sameSite=lax
- Server checks the session before returning private data
- Secrets are loaded from environment variables
How to test:
1. Run the app locally
2. Visit /dashboard while signed out. You should be redirected to /login
3. Sign in with a test account
4. Visit /dashboard again. You should see private content
5. Sign out and confirm /dashboard is blocked againDo not hide gaps
Do not write “secure auth added” if your API routes still return private data without checking the user. Reviewers often test APIs directly, not only pages.
Also avoid committing screenshots that show real user emails, tokens, cookies, or OAuth secrets. Use a demo account and fake data.
Use AI carefully
Ask ChatGPT, Gemini, or Claude to review your README and test plan. Paste only non-secret code or file snippets.
Check what it returns. It may suggest fake package flags, wrong cookie names, or security claims your app does not actually implement.
Prompt:
Review this README auth section for clarity and missing security checks.
Do not add features I have not implemented.
Point out any claims that need proof in code.Do this now
Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.
0 of 5 done