PHconsult is a modern web application that provides comprehensive research assistance to students, professionals, and organizations. The platform offers a suite of services including research topic selection, data analysis, report writing, mentorship, and assignment support—all accessible via an intuitive, responsive interface.
- User Authentication: Secure registration and login (Node.js, Express, MongoDB, JWT)
- Service Listings: Data analysis, report writing, research consulting, topic selection, mentorship, assignment support
- Responsive UI: Modern, mobile-friendly design (Bootstrap 5, custom CSS)
- Dark/Light Mode: Theme toggle for accessibility
- Collapsible Side Panel: Space-efficient navigation
- Online Service Requests: Contact and order forms (with Firebase integration)
- Testimonials: Real client feedback
- Admin Panel: (WIP) For managing users and service requests
Check out the deployed app here: https://philipkone.github.io/PHconsult/
- Node.js & npm (for backend/server features)
- MongoDB Atlas account (for backend database)
- (Optional) Firebase project (for contact form and messaging)
- Clone the repository:
git clone https://github.com/PhilipKone/PHconsult.git cd PHconsult - Install backend dependencies:
npm install
- Set up environment variables:
- Create a
.envfile in the root directory with your MongoDB URI and JWT secret:MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret
- (If using Firebase for contact form, configure your Firebase project in
contact.html)
- Create a
- Start the backend server:
node app.js
- Open
index.htmlin your browser for the frontend.
- HTML5, CSS3, JavaScript (Vanilla)
- Bootstrap 5
- Font Awesome
- Node.js, Express.js
- MongoDB (Mongoose ODM)
- JWT for authentication
- bcryptjs for password hashing
- body-parser for request parsing
- Firebase Firestore (for contact form/message storage)
PHconsult-1/
├── app.js # Express backend entrypoint
├── backend/ # Backend logic (auth, models)
│ ├── authRoutes.js # Auth API routes
│ ├── login_process.js # (Legacy/optional)
│ ├── register_process.js# (Legacy/optional)
│ └── models/
│ └── User.js # Mongoose User model
├── assets/
│ ├── css/
│ ├── js/
│ └── images/
├── index.html # Main landing page
├── about.html # About the platform
├── services.html # Service details
├── contact.html # Contact form (uses Firebase)
├── login.html # Login page
├── register.html # Registration page
├── admin.html # Admin dashboard (WIP)
├── package.json # Node dependencies
└── README.md
-
User: Central entity representing system users
- Manages user authentication and profile information
- Can order services, submit reviews, and make payments
- Has associated portfolio and CV
-
Admin: System administrator
- Manages users, services, and content
- Handles contact form submissions
- Views system analytics
-
Service: Represents offered services
- Contains service details (name, description, price)
- Categorized with specific features
- Can be ordered by users
-
Review: User feedback system
- Stores review content and ratings
- Associated with specific services
- Includes timestamp for tracking
-
Payment: Handles financial transactions
- Processes service payments
- Manages payment status and methods
- Supports refund operations
-
Donation: Manages donation system
- Processes donation amounts
- Handles different currencies
- Generates donation receipts
-
Portfolio: Showcases professional work
- Lists skills and projects
- Can be updated by users
- Displays professional achievements
-
CV: Professional background
- Contains education history
- Lists work experience
- Shows certifications
- Contact: Contact form system
- Manages user inquiries
- Tracks message status
- Integrated with Firebase
-
UI: User interface management
- Handles dark/light mode
- Manages responsive design
- Controls side panel functionality
-
FirebaseService: Backend integration
- Handles authentication
- Manages data storage
- Provides real-time updates
- Users can order multiple services (1-to-many)
- Services can have multiple reviews (1-to-many)
- Each user has one portfolio and CV (1-to-1)
- Admins manage multiple users and services (1-to-many)
- All components interact through the UI layer
- Firebase service provides backend support for data persistence
- Visit
index.htmlfor the main site. - Register/Login for personalized features.
- Use the contact form for service requests or questions (messages stored in Firebase).
- Admin features are under development.
We welcome contributions to improve PHconsult!
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes
- Push to your fork and open a Pull Request
- Email: phconsultgh@gmail.com
- Phone: +055 199 3820
- Location: Accra, Ghana
This project is licensed under the MIT License. See the LICENSE file for details.

