The site could include:
- Homepage
- Header with logo, navigation (Home, Leaderboard, My Profile, About).
- Section showing today’s challenge (title, description, difficulty, "Start Challenge" button).
- Countdown timer until the next challenge.
- User progress bar and streak indicator.
- Quick links to past challenges.
- Challenge Page
- Challenge title, full description, requirements.
- Submission area (text/code box or file upload).
- "Submit" button.
- Section showing hints (locked/unlocked).
- Leaderboard preview for today’s challenge.
- Leaderboard Page
- Global leaderboard with usernames, points, streak count, badges.
- Filter/sort options (daily, weekly, all-time).
- Search bar for users.
- Profile Page
- Username, avatar, streak count, badges earned.
- Stats: completed challenges, total points, rank.
- History of past submissions.
- Authentication Pages
- Login (email/username + password).
- Signup (username, email, password).
- Option to continue with GitHub/Google.
- About/Info Page
- Explanation of the project and how daily challenges work.
- Fun note: "This is just a learning project."
- Gamification Elements
- Streak counter (🔥).
- Badges for milestones (7 days streak, 30 days, etc.).
- Notifications/alerts for when a new challenge is live.
- Footer
- Links: About, Contact, Privacy, GitHub repo.
- Social media icons.
- Clone the repository
git clone https://github.com/FlashGrey3000/challengeX.git cd challengeX - Install npm dependencies and run frontend
cd frontend npm i npm dev - Start up backend services
Will update as the backend services are created...
Might have to make a run_backend.sh file or something so that all backend services can start with a single script instead of multiple scripts...
- Create a new branch
git checkout -b feature/your-feature-name
- Work on it then commit
git add . git commit -m "Add feature: description"
- Move to main branch and update it
git checkout main git pull origin main
- Merge your branch
git merge your-branch-name
- Push it
git push origin main