A comprehensive platform connecting mentors and mentees in the education technology sector, built with Angular and Firebase.
EdTech is a web application designed to facilitate mentor-mentee relationships within the educational technology field. The platform provides an intelligent matching system, profile management, mentorship request workflow, and communication tools to support effective mentorship experiences.
- Intelligent Recommendation Engine: AI-driven algorithm matching mentors and mentees based on skills, goals, location, availability, and other weighted factors
- Advanced Search and Filtering: Comprehensive search with filters for skills, industry, location, availability, and ratings
- Profile Management: Complete profile creation and management for both mentors and mentees
- Request/Approval Workflow: Streamlined system for sending, receiving, and managing mentorship requests
- Messaging System: Integrated communication platform for mentor-mentee conversations
- Dashboard Access: Separate dashboards for mentors and mentees to track active mentorships
- Authentication System: Secure login and signup with Firebase Auth
- Profile Completion: Guided onboarding process for comprehensive user profiles
- Mentor Limits: Configurable limits for active mentees per mentor
- Notification System: Real-time notifications for requests and updates
- Frontend: Angular 20 with TypeScript
- Styling: Tailwind CSS with DaisyUI components
- Backend: Firebase (Authentication, Firestore Database, Hosting)
- Testing: Jasmine and Karma
- Package Management: npm
src/
├── app/
│ ├── core/ # Core services and guards
│ │ ├── auth/ # Authentication service
│ │ └── guards/ # Route guards
│ ├── shared/ # Shared components and services
│ │ ├── components/ # Reusable UI components
│ │ ├── models/ # Data models
│ │ └── services/ # Shared business logic services
│ └── pages/ # Application pages/routing modules
│ ├── auth/ # Authentication pages
│ ├── home/ # Home page
│ ├── matching/ # Mentor-mentee matching
│ ├── profile/ # User profiles
│ ├── messages/ # Messaging system
│ ├── mentor-dashboard/ # Mentor dashboard
│ ├── mentee-dashboard/ # Mentee dashboard
│ └── [other pages...]
├── environments/ # Environment configurations
└── styles.scss # Global styles
- Node.js 18.0.0 or higher
- npm 9.0.0 or higher
- Firebase account and project
-
Clone the repository
git clone https://github.com/krtdotcode/EdTech.git cd edtech -
Install dependencies
npm install
-
Configure Firebase
- Create a Firebase project at https://console.firebase.google.com
- Enable Authentication and Firestore Database
- Copy your Firebase configuration to
src/environments/environment.ts
-
Configure your Firebase settings
- Replace the placeholder values in
src/environments/environment.tswith your Firebase project configuration - Update Firestore rules if needed (see
firestore.rules) - Configure Firestore indexes if required (see
firestore.indexes.json)
- Replace the placeholder values in
-
Start the development server
npm start
The application will be available at
http://localhost:4200 -
Run tests
npm test -
Build for production
npm run build
The application can be deployed to Firebase Hosting:
firebase deployMake sure your Firebase project is configured and authenticated locally.
- Register an account through the signup page
- Complete your profile during onboarding
- Specify whether you're registering as a mentor or mentee
- Start using the platform to find matches and request mentorships
- Review incoming mentorship requests
- Manage active mentorship relationships
- Communicate with mentees through the messaging system
- Provide feedback and guidance
- Browse mentor profiles and search for suitable matches
- Send mentorship requests to potential mentors
- Communicate with approved mentors
- Track progress and leave feedback
The application provides several key services:
- ProfileService: Manages user profile data and mentorship requests
- RecommendationService: Handles AI-driven mentor recommendations
- AuthService: Manages user authentication
- MessagingService: Handles real-time messaging functionality
Comprehensive unit and integration tests are provided:
npm testTest coverage includes core services, components, and API integrations.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Part of the code was inspired by the official Angular documentation and Firebase documentation.
Kurt Joshua Cayaga
- 3rd Year | BS Computer Science
- University of Cabuyao
Jaireell Son Regala
- 3rd Year | BS Information Technology
- Bulacan State University