You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A RESTful API for an African American History crossword puzzle application. Users can play crossword puzzles built from a curated word bank of African American history terms, figures, and events. The backend handles puzzle generation, user authentication, progress tracking, and administrative management.
Crossword puzzle generation — algorithmic grid builder that places words with valid intersections, assigns clue numbers top-left to bottom-right, and fills empty cells with black squares
Difficulty-based grid sizing — Easy (10x10, 6 words), Medium (15x15, 10 words), Hard (20x20, 15 words)
Word bank seeding — auto-seeds categories, words, and clues from blackHistory.json on startup
JWT authentication — stateless token-based auth with role claims embedded in the token
Google OAuth 2.0 — sign in with Google (in progress)
Role-based access control — USER and ADMIN roles enforced at the method level via @PreAuthorize
Password reset via email — time-limited secure reset tokens sent via Gmail
Login attempt logging — tracks successful and failed login attempts with failure reasons
Security audit log — logs sensitive actions like bans, role assignments, and password changes
User profile management — profile completion tracking with name, birthday, and phone number
Puzzle solve tracking — records time taken, mistakes, hint usage, and completion status
Admin panel endpoints — full CRUD for categories, word bank entries, clues, users, and puzzles
A RESTful API for an African American History crossword puzzle application. Built with Spring Boot 4, PostgreSQL, and JWT authentication. Features crossword puzzle generation, user management, word bank seeding, and role-based access control.