You'll need Redis, Postgres, and Elasticsearch installed locally.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cd web
./manage.py migrate auth
./manage.py migrate registration --fake-initial
./manage.py migrate user_profile --fake-initial
./manage.py migrate_users
./manage.py migrate --fake-initialNote: we use Black for formatting.
python manage.py runservernpm install -g pnpm
cd web/frontend && pnpm install && pnpm run devTaproot Plus is a platform that connects nonprofits and small businesses with skilled volunteers who provide pro bono professional services.
Three main user types:
- Nonprofits
- Small Businesses
- Volunteers
The main user model is called CustomUser. Users have a UserProfile (which is tied to a "users" table for legacy reasons).
Multi-week partnerships where volunteers commit 2-5 hours per week for 2-10 weeks. Projects have specific deliverables and goals across various categories:
- Software Engineering Projects
- Website Development & Maintenance
- Mobile Development
- Feature Development
- Technical Planning
- Implementation Support
- HR & Leadership Projects
- Leadership Coaching
- HR Policy Development
- Organizational Development
- Marketing & Communications
- Brand Strategy
- Social Media Planning
- Content Development
- Operations & Analytics
- Data Analysis
- Process Improvement
- Survey Development
- Operations Audits
One-hour virtual consultation calls designed for:
- Quick problem-solving
- Brainstorming
- Project planning
- Professional advice
- Preparing for larger initiatives
The onboarding process is differentiated between nonprofits and small businesses:
- Custom welcome messages for each user type
- Profile setup taking approximately 10 minutes
- Progressive save functionality
Users get access to different skill categories:
- Marketing & Communications
- Software Engineering
- Writing
- Operations & Analytics
- HR & Leadership
- Business Planning
- Collects user demographic information
- Data used for program improvement
- Optional fields beyond basic requirements
- Data shared only in anonymized aggregate form
- Uses Vite for build tooling
- React integration
- Tailwind CSS for styling
- Custom fonts (Avenir and Newsreader)
- Django-based application
- Template-driven views
- URL routing with Django's URL patterns
- Google Tag Manager integration
- Skill-based matching system
- Pre-scoped project templates
- Customizable project scopes
- Documentation and resources
- Webinar recordings
- Contact team options
- Project outcome measurements
- Data analysis capabilities
- Impact visualization tools
This platform emphasizes accessibility to professional services while maintaining structured engagement formats (Projects vs. Sessions) to ensure effective outcomes for both service recipients and volunteers.