How xtremilicious/projectlearn-project-based-learning works
ProjectLearn is a project-based learning catalog: learners enter through the landing page, choose a development domain, browse and filter its project tutorials, then open a project detail page. The site also publishes tech articles and offers a contributor workflow for submitting projects through GitHub authentication and an API endpoint. The README names web, mobile, game, and machine-learning/AI categories; the tree also shows blog and contribution features. Some subsystem wiring is inferred only from page structure, so uncertain service and storage links are omitted.
Main entry points: dataActions.ts Project Data Actions · Categories.tsx Category Links · Layout.tsx Catalog Dashboard · index.tsx Project Submission
Components 24
Site Discovery
- Landing Page
pages/index.tsx - Category Links
src/components/landing/Categories.tsx - Blog Index
pages/blog/index.tsx - Blog Listing
src/components/blog/BlogList.tsx - Blog Article
pages/blog/[slug].tsx
Learning Catalog
- Web Category
pages/learn/web-development/index.tsx - Mobile Category
pages/learn/mobile-development/index.tsx - Game Category
pages/learn/game-development/index.tsx - ML AI Category
pages/learn/machine-learning-and-ai/index.tsx - Catalog Dashboard
src/components/dashboard/Layout.tsx - Category Filtering
src/components/dashboard/Content/index.tsx - Project Results
src/components/dashboard/Content/ProjectList.tsx - Project Detail Pages
pages/learn/web-development/project/[id].tsx - Project Information
src/components/dashboard/Info/ProjectInfo.tsx
Community Publishing
- Project Submission
pages/contribute/index.tsx - GitHub Login
src/components/GitHubLogin.tsx - Add Project API
pages/api/github/add-project.ts - Auth Handler
pages/api/auth/[...nextauth].ts
Catalog State
- Project Data Actions
src/redux/actions/dataActions.ts - Project Data Reducer
src/redux/reducers/dataReducer.ts - Redux Store
src/redux/store.ts
Other components
- Learner
- Contributor
- GitHub
Connections 30
- Learner → Landing Page: opens
- Landing Page → Category Links: renders
- Category Links → Web Category: links to
- Category Links → Mobile Category: links to
- Category Links → Game Category: links to
- Category Links → ML AI Category: links to
- Web Category → Project Data Actions: dispatches
- Mobile Category → Project Data Actions: dispatches
- Game Category → Project Data Actions: dispatches
- ML AI Category → Project Data Actions: dispatches
- Project Data Actions → Project Data Reducer: updates
- Project Data Reducer → Redux Store: reduces state
- Web Category → Catalog Dashboard: renders
- Mobile Category → Catalog Dashboard: renders
- Game Category → Catalog Dashboard: renders
- ML AI Category → Catalog Dashboard: renders
- Catalog Dashboard → Category Filtering: renders
- Category Filtering → Redux Store: reads projects
- Category Filtering → Project Results: passes filtered projects
- Learner → Project Detail Pages: opens tutorial
- Project Detail Pages → Project Information: renders
- Learner → Blog Index: opens
- Blog Index → Blog Listing: renders
- Learner → Blog Article: opens article
- Contributor → Project Submission: submits project
- Project Submission → GitHub Login: renders
- GitHub Login → Auth Handler: starts sign-in
- Auth Handler → GitHub: authenticates with
- Project Submission → Project Data Actions: dispatches
- Project Submission → Add Project API: posts submission