A comprehensive justicetech ecosystem platform designed to connect legal professionals, entrepreneurs, and justice advocates through profiles, accelerator programs, and knowledge sharing.
JustLaw Israel facilitates community building in the justicetech space by providing professional networking, structured accelerator programs, and a curated knowledge repository. The platform connects users through customizable profiles, manages cohort-based accelerator applications, and serves as a central hub for justicetech resources and events.
- Backend API: Node TypeScript service deployed on Render
- Frontend Application: React TypeScript application deployed on Netlify
- Database: Supabase PostgreSQL
- Integrations: Google OAuth, Google Calendar, Zoom, LinkedIn
The project is developed collaboratively by two companies, each handling specialized feature sets:
Focus: External user experience and public-facing features
- Profile Management Team: User registration, profiles, search, and LinkedIn integration
- Knowledge Hub Team: Content management, categorization, search, and publishing workflow
Focus: Administrative systems and core infrastructure
- Accelerator Program Team: Application workflow, Google Calendar, events, and Zoom integration
- Infrastructure Team: Main website, admin dashboard, donation system, and shared components
- Main Project Document - System architecture, user roles, technical overview, and wireframes
- Company Structure Document - Detailed breakdown of company responsibilities
- Profile Management PRD - Detailed requirements for profile system
- Knowledge Hub PRD - Content management system requirements
- Accelerator Program PRD - Accelerator workflow and integration requirements
- Infrastructure PRD - Website and infrastructure requirements
The API documentation is generated from the TypeScript definitions. Core endpoints include authentication, profiles, accelerator applications, content management, and admin functions.
justlaw-israel/
├── packages/
│ ├── backend/ # Node.js TypeScript API
│ ├── frontend/ # React TypeScript application
│ ├── shared/ # Shared TypeScript types
└── README.md
- Node.js 18+
- npm or yarn
- Git
- Google Cloud Console account
- Supabase account
- Clone the repository:
git clone https://github.com/justlaw-israel/platform.git
cd justlaw-israel- Install dependencies:
npm run install:all- Set up environment variables:
cp packages/backend/.env.example packages/backend/.env
cp packages/frontend/.env.example packages/frontend/.envUpdate the variables with your local configuration.
- Start the development servers:
# In one terminal:
npm run dev:backend
# In another terminal:
npm run dev:frontend- Frontend: http://localhost:3001
- Backend API: http://localhost:3000/api
- Connect your Render account to the GitHub repository
- Configure build command:
npm run build:backend - Configure start command:
npm run start:backend - Set required environment variables in Render dashboard
- Connect your Netlify account to the GitHub repository
- Configure build command:
npm run build:frontend - Configure publish directory:
packages/frontend/build - Set required environment variables in Netlify dashboard
- Create a new project in Supabase
- Run migration scripts:
npm run db:migrate - Update environment variables with Supabase connection details
- API-First Approach: Week 1 focuses on API contracts and mock implementations
- Cross-Company Collaboration: Both companies work on the same unified system
- Branch Naming:
feature/team-X-feature-name,bugfix/team-X-issue-description - Commit Format:
[TEAM-X] Type: Brief description
- Create a new branch:
git checkout -b feature/team-1-profile-creation - Commit changes:
git commit -m "[TEAM-1] Feature: Add profile creation form" - Push to branch:
git push origin feature/team-1-profile-creation - Submit a pull request to
developbranch
8 weeks total:
- Week 1: API contracts and setup
- Weeks 2-6: Feature development
- Weeks 7-8: Testing, deployment, and documentation
This project is private and proprietary. Unauthorized copying, distribution, or use is strictly prohibited.