TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Free PMP exam prep with 900 practice questions, project management tools and templates, business analysis and data analytics guides, and 200 learning links.
EducationTypeScript · HTMLGitHub @alamgircanbOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A responsive Angular learning platform and portfolio, with rotating Home banners, project artifacts, Diagram Studio, and a PERT/CPM calculator. See PMPORT_UPDATE_GUIDE.md for the updated structure and editing instructions.
npm install
npm start
Open http://localhost:4200. Create a production build with npm run build.
All growing lists are JSON-driven in public/data/:
home-slides.json — rotating Home banner contentportfolio.json — four portfolio areas, images, work items and repository linkseducation.json — BBA, MBA and BIS details and searchable coursesmedia.json — featured and listed YouTube videospm-faciliter-modules.json — training modules, videos and evaluationsevents.json — four featured cards plus scrollable archiveresources.json — books and articles with repository linksUse only the YouTube video ID (the part after youtu.be/ or watch?v=). Lower priority values appear first. Lists become scrollable as they grow, so you can add entries without changing the page layout. Put new images in public/ and reference their filename in JSON. Empty URLs intentionally display as placeholders.
src/app/pages/.src/app/app.routes.ts.src/app/app.component.ts.The shared sidebar, top bar and footer remain unchanged.
src/environments/environment.ts.Never put the service-role key in Angular. The /pm-faciliter/member route is protected. For production-grade authorization of private files or records, also enforce Supabase Row Level Security policies; a client-side route guard alone is not a data security boundary.
The form posts to the Vercel function at api/contact.mjs, which uses Resend. In Vercel Project Settings → Environment Variables add:
RESEND_API_KEYCONTACT_TO_EMAIL (defaults to [email protected])CONTACT_FROM_EMAIL (use an address on your verified Resend domain)Copy .env.example only as a reference and never commit real keys. Resend’s testing sender may have recipient restrictions; verify your domain before public launch.
npm run build; output directory: dist/portfolio/browser.vercel.json provides Angular route fallback while leaving /api/* serverless functions available.
src/app/
core/ # auth, services, shared models
pages/ # one standalone component per page
public/data/ # editable content database
api/ # Vercel contact function