Skip to content

UrielOfir/maakaf_home

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

מעקף - Maakaf

מעקף היא קהילת קוד פתוח ישראלית המקדמת פרויקטים של תוכנה חופשית. Maakaf is an Israeli open source community promoting free software projects.

About This Website

This is the official website for the Maakaf community. It's built using Hugo with the Docsy theme, providing a comprehensive platform for our community's documentation, blog posts, and project information.

Local Development

To run this website locally, you'll need:

  • Hugo Extended (version 0.146.0 or higher)
  • Go (for Hugo modules)
  • Node.js and npm (for SCSS processing)

Setup and Run

  1. Clone the repository:
git clone https://github.com/Maakaf/maakaf_home.git
cd maakaf_home
  1. Install dependencies:
npm install
  1. Run the development server:
hugo server

The site will be available at http://localhost:1313

Community Links

Mentorship Program

The site includes a full mentorship web app at /he/mentorship/. It is backed by a separate Express + Firebase API — see mentors_backend.

Pages

URL Description
/he/mentorship/ Home: program description, mentor directory with search/filter
/he/mentorship/register/ Register as mentor or mentee
/he/mentorship/login/ Sign in
/he/mentorship/mentor-dashboard/ Mentor: view and respond to incoming requests
/he/mentorship/mentee-dashboard/ Mentee: view sent requests, cancel, complete, reply
/he/mentorship/request/ Send a mentorship request to a specific mentor
/he/mentorship/profile/ Edit mentor or mentee profile
/he/mentorship/admin/ Admin dashboard: stats, full requests table, mentor and mentee lists

Frontend modules (static/js/mentorship/)

File Purpose
api.js apiFetch, authedFetch, session helpers (reads window.MENTORSHIP_API_BASE)
auth-bar.js Injects the beta notice + auth bar (greeting, dashboard link, bell, logout) on every mentorship page
notifications.js Bell icon with dropdown, 30s polling, deep-links to specific request cards
mentorship-home.js Hides guest CTA when logged in
directory.js Mentor directory: renders cards with avatar initials, search/filter
register.js Mentor/mentee registration with OTP email verification (code input card, resend, change email)
login.js Sign-in, OTP verification card for unverified users, OTP-based password reset (code + new password on site)
mentor-dashboard.js Mentor: request cards with actions, mentee profile toggle, conversation history
dashboard.js Mentee: request cards, reply on needs_info, cancel/complete, conversation history
request.js Submit a mentorship request
profile.js Edit mentor or mentee profile
admin.js Admin dashboard: login, stat cards, requests table with stale-alert, mentors/mentees tabs
errors.js Hebrew error message map
toast.js Toast notification helper

Session

The session (ID token, refresh token, role, name) is stored in localStorage under the key mentorship.session. It persists across tabs, windows, and browser restarts until the user explicitly logs out. All session access goes through getSession() / saveSession() / clearSession() in api.js.

Security practices

Practice Where
All user content passed through escapeHtml() before DOM insertion utils.js, all dashboard/request modules
Error messages use textContent, never innerHTML profile.js, toast.js
Redirects use dashboardUrl() helper — no hardcoded paths profile.js, register.js, auth-bar.js
OTP/password credentials wiped from memory only on success register.js, login.js
Resend failures surface an error to the user register.js, login.js
STATUS_LABELS and formatDate defined once in utils.js, imported everywhere utils.jsadmin.js, dashboards

Styling

Mentorship-specific styles live in assets/scss/_styles_project.scss. Key class families:

Prefix Used for
.ms-auth-bar, .ms-page-header, .ms-avatar, .ms-role-card, .ms-form-section Shared mentorship UI components
.ms-page-title Mentorship home page heading
.admin-stat, .admin-panel, .admin-filter-bar, .admin-auth-card, .admin-table Admin dashboard components

The body_class: "no-sidebar" front matter (cascaded from content/he/mentorship/_index.md) hides the Docsy docs sidebars and constrains content width on all mentorship pages.

API base URL

window.MENTORSHIP_API_BASE is injected by layouts/partials/hooks/head-end.html from params.mentorshipApiBase in hugo.yaml. Set this to the backend URL for each environment.

Contributing

We welcome contributions from the community! Whether it's:

Please feel free to open an issue or submit a pull request.

License

This project is built on top of Docsy, which is licensed under the Apache License 2.0. Our content and modifications are available under the same terms.

About

Website for Ma'akaf - Israeli Open Source Community

Resources

License

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 35.4%
  • SCSS 28.0%
  • HTML 27.8%
  • CSS 7.3%
  • TypeScript 1.5%