Skip to content

ProFinder connects professionals with clients for valuable work opportunities. ๐ŸŒŸ Enjoy secure transactions ๐Ÿ”’, a comprehensive company search ๐Ÿ•ต๏ธโ€โ™‚๏ธ, and enhanced profiles โœจ. With a user-friendly design ๐Ÿ–ฅ๏ธ, ProFinder makes finding freelance gigs ๐Ÿ’ผ, hiring experts ๐Ÿง‘โ€๐Ÿ’ผ, and collaborating ๐Ÿค easy and enjoyable. Explore new opportunities today! ๐Ÿš€

License

Notifications You must be signed in to change notification settings

Ayman-Al-Khatib/profinder-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Pro Finder

Express Axios Mongoose Lodash Jsonwebtoken Express-async-errors Multer Unzipper Pdf-lib Archiver Dotenv I18n Rate-limit-redis Redis Socket.io Passport Bcryptjs Helmet Node-cron Nodemailer Express-mongo-sanitizeExpress-rate-limit Express-validator Sharp Passport-github Passport-google-oauth20 Pdf-lib Winston Uuid

ProFinder ๐ŸŒŸ

ProFinder is a platform that connects professionals with clients to create valuable work opportunities. ๐Ÿค Whether you're seeking freelance gigs, looking to hire experts, or aiming to collaborate with professionals, ProFinder offers a robust system that ensures the rights of both parties. ๐Ÿ’ผ๐Ÿ” The app provides a powerful mechanism for secure transactions ๐Ÿ”’, a comprehensive search for companies ๐Ÿข, and a way to enhance your profile by sharing your CV ๐Ÿ“„ to increase job opportunities. It also features a beautiful and eye-catching design that makes navigation easy and enjoyable. ๐ŸŒŸStart using ProFinder today to unlock new possibilities! โœจ

Product Links ๐Ÿ›’

Main Sections ๐Ÿš€

  • Multi-level Login System ๐Ÿ”‘
    Manage users at various levels including Admin and Super Admin.

  • User Interests and Recommendations ๐ŸŽฏ
    Manage user interests and receive tailored recommendations.

  • Comprehensive Profile Management ๐Ÿ“
    Create and manage a detailed user profile with all necessary information.

  • Follow System ๐Ÿ‘ฅ
    Users can follow other users and be followed, enhancing interaction.

  • Company Creation and Management ๐Ÿข
    Create, edit, and manage companies and their job postings.

  • Job Creation and Applications ๐Ÿ’ผ
    Companies can create job opportunities, and users can apply for these jobs.

  • Post Creation and Interaction ๐Ÿ—จ๏ธ
    Create posts, comment, like, and save posts in the platform.

  • Wallet Management ๐Ÿ’ต
    Manage currency transfers and keep track of transactions.

  • Freelance Projects ๐Ÿ› ๏ธ
    Create and apply for freelance projects.

  • Contract Creation ๐Ÿ“โœ๏ธ
    Create contracts for freelance projects to ensure mutual agreement and clear terms.

  • Advanced Notification System ๐Ÿ””
    Receive and manage notifications for various activities and updates.

  • User-to-User Chat ๐Ÿ’ฌ
    Communicate directly with other users to finalize agreements and discuss opportunities.

  • Reporting System ๐Ÿšจ
    Report posts, companies, users, job opportunities, or freelance projects.

  • Support Center Communication ๐Ÿ“ž
    Contact the support center for assistance with any issues.

  • Protection ๐Ÿ›ก๏ธ Several levels of protection have been applied to ensure a secure user experience, safeguarding both data and financial transactions.

Noteworthy Features ๐ŸŒŸ

  • Advanced Filtering Operations: ๐Ÿ”
    Empower users with robust filtering capabilities, allowing them to sort any field within a table in ascending or descending order, perform searches within specific fields, and retrieve data across defined time periods. This feature offers a wide range of filtering options to enhance data management and accessibility.

  • Expert Notification System: ๐Ÿ””
    A sophisticated notification system that intelligently responds to user activity. Notifications are automatically paused when the user becomes inactive within the application, maintaining a streamlined structure and optimizing resource usage for efficient performance.

  • Real-Time Conversation: ๐Ÿ’ฌ
    Enhance communication by indicating the userโ€™s statusโ€”whether online or offline. This feature includes comprehensive message status indicators, such as sent, delivered, and read. The conversation system is designed to scale, providing reliable and fluid communication across the platform.

  • Profile & Contract Printing: ๐Ÿ–จ๏ธ
    Users can print their profile as a CV for job applications both within and outside the platform. Additionally, the ability to print contracts between customers and employers is provided, ensuring that both partiesโ€™ rights are clearly documented and protected.

  • Secure Money Transfer: ๐Ÿ’ฐ
    The application features a secure wallet that safeguards user transactions. When a freelance job request is made, the payment is initially held in the applicationโ€™s wallet. Upon task completion and subsequent admin approval, the funds are securely transferred to the intended recipient, ensuring a trustworthy transaction process.

  • Google Login Integration: ๐Ÿ”
    Enhance security and convenience with seamless login through Google, offering users an easy and reliable authentication method.

  • Freelancer Evaluation: โญ
    Users have the ability to evaluate freelancers based on their work and project execution. This feature ensures transparency and helps future clients make informed decisions when choosing a freelancer.

  • Hashtag Integration: #๏ธโƒฃ
    Hashtags have been implemented to improve content discoverability. Users can easily search for and find posts by using relevant hashtags, making navigation more efficient.

  • Suggested Posts Based on User Interests: ๐ŸŽฏ
    The platform intelligently suggests posts to users based on their interests, providing a more personalized and engaging experience by showcasing content that aligns with their preferences.

  • Image Compression: ๐Ÿ“ธ
    The application includes a feature to compress images while maintaining high quality. This ensures that images are optimized for performance without significant loss of visual fidelity.

  • Translation Feature: ๐ŸŒ
    Messages returned from responses and notifications are translated, allowing users to view content and updates in their preferred language.

  • Statistics ๐Ÿ“Š The Statistics section empowers administrators with detailed visibility into the application's activities, providing crucial data to track high-demand areas and monitor user interactions.

ProFinder Overview

Multi-Level Login System

Our application features a sophisticated Multi-Level Login System that categorizes users into various roles, each with distinct responsibilities and permissions:

Regular User ๐Ÿ‘ค

Regular users enjoy a variety of functionalities designed to enhance their experience within the app. These include:

  • Login Options: Users can log in using their email or through Google for added convenience ๐Ÿ”.

  • Post Management: They can create, edit, and delete posts ๐Ÿ“ข, as well as comment on posts and
    delete their comments ๐Ÿ’ฌ.

  • Project Interaction: Users have the ability to publish their own projects and apply for projects created by others ๐Ÿ“.

  • Company Creation: Users can request to create a company, which becomes active after admin approval ๐Ÿข. Once approved, they can publish posts and create job listings within their company ๐Ÿš€.

  • Diverse Activities: A wide range of other activities are available to users, providing a rich
    and interactive experience within the application.

Admin ๐Ÿ› ๏ธ

Admins possess broader permissions and are responsible for managing various aspects of the platform:

  • User Management: Admins can search, filter, delete, and ban users based on their behavior ๐Ÿ”ง.

  • Monitoring & Moderation: They oversee user reports and all user-related activities, ensuring compliance with platform standards ๐Ÿ›ก๏ธ.

  • Admin Levels :

    1. Wallet Manager ๐Ÿ’ณ

      • Responsibilities: Oversees all financial transactions within the platform. This includes managing wallet operations, handling deposits and withdrawals, and ensuring financial transactions are processed securely and accurately ๐Ÿ”’.
    2. Company Manager ๐Ÿข

      • Responsibilities: Manages all aspects related to company operations. This includes overseeing the creation and management of company accounts, ensuring compliance with company guidelines, and handling any issues related to company activities ๐Ÿ”.
    3. Freelancer Manager ๐Ÿ‘จโ€๐Ÿ’ผ

      • Responsibilities: Focuses on managing freelance projects and interactions. Oversees freelancer profiles, project applications, and ensures that freelance engagements are conducted smoothly. Also addresses any issues related to freelancer performance and project execution ๐Ÿ“Š.
    4. Technical Support ๐Ÿ› ๏ธ

      • Responsibilities: Provides support for technical issues and user inquiries. Handles troubleshooting, resolves technical problems, and ensures that the platformโ€™s technical operations run efficiently and effectively ๐Ÿ’ฌ. Additionally, responds to messages from users experiencing problems, offering assistance and guidance through chat interactions.

Super Admin ๐Ÿ‘‘

Super Admins hold the highest level of authority within the application, managing the admins and overall system functionalities:

  • Admin Management: Super Admins can create, delete, ban, or modify admin permissions ๐Ÿ‘ฉโ€๐Ÿ’ผ.
  • Ultimate Control: With complete oversight, Super Admins have the power to manage every aspect of the application, ensuring that it runs smoothly and efficiently โš™๏ธ.

User Interests and Recommendations

User interests are crucial as they allow users to specify their preferences ๐Ÿ’ก. This helps in discovering content that aligns with their interests ๐Ÿ”, displaying posts ๐Ÿ“„ and job opportunities ๐Ÿ’ผ that are suitable and relevant to them. Users can add, edit, and delete multiple interests on their profiles. This customization ensures they receive personalized content, including suggested posts and job opportunities that match their interests. Additionally, users can publish jobs or suggest positions that align with their skills or preferences, enhancing the relevance of job matches and content suggestions.


Comprehensive Profile Management

Our platform offers a robust profile management system ๐ŸŒŸ, allowing users to present their professional and personal information in a detailed and organized manner.

  • Address: ๐Ÿ 
    Provides detailed information about the user's geographical location.

  • Certifications: ๐Ÿ…
    Showcase various certificates that validate skills and achievements.

  • Education: ๐ŸŽ“
    Lists the stages of education completed, including details of institutions and dates.

  • Projects: ๐Ÿ“
    Highlights personal projects undertaken, demonstrating experience and expertise.

  • Skills: ๐Ÿ› ๏ธ
    Details the skills possessed, categorized by type or relevance.

  • Languages: ๐ŸŒ
    Displays the languages the user is proficient in.

  • Social Media Links: ๐Ÿ”—
    Provides links to social media profiles for networking and professional connections.

  • Work Experience: ๐Ÿ’ผ
    Describes experience gained from working in various companies or professional environments.

  • CV Upload: ๐Ÿ“Ž
    Allows users to upload their CV directly to their profile.

  • Personal Information: ๐Ÿ†”
    Includes the user's full name, date of birth, bio, phone, and gender.


Follow System

The Follow System empowers users to build meaningful connections by following others. ๐Ÿ” This feature allows users to stay updated with the latest posts, activities, and interactions from those they follow ๐Ÿ“ˆ. By fostering a more interactive and engaged community ๐ŸŒ, it helps users remain connected with the latest happenings in their network ๐Ÿ””.

Users can follow anyone on the platform and view both their own followers and the users they follow. ๐Ÿ•ต๏ธโ€โ™‚๏ธ This feature enhances connectivity by providing easy access to profiles and updates from followed users ๐Ÿ‘ค. Additionally, users receive timely notifications ๐Ÿ”” when someone they follow shares new content or job postings, keeping them informed about relevant activities. โœจ


Company Creation and Management

Users can request to establish a company by submitting necessary documentation, such as a commercial record or other proof of legitimacy. ๐Ÿ“‘ The admin will review and verify the submitted information to ensure the company's authenticity. โœ… Based on this evaluation, the request may be approved or rejected.

Once a company is approved, the company owner can appoint supervisors to assist with managing the company. ๐Ÿ‘ฅ Supervisors have limited control, including tasks such as publishing posts ๐Ÿ“ and job opportunities, and managing job applications. Posts can be created, modified, or deleted by both the company owner and supervisors.

Anyone within the system can submit a request to create a company, providing all necessary details and documentation. Once the company is established, the owner can add users as admins, who can then publish and manage company-related jobs and posts, all while ensuring that the overall management remains under the owner's authority. ๐Ÿ‘‘


Job Creation and Applications

In the application, a manager can easily create a job listing ๐Ÿ›  by submitting relevant details through the manager interface. Once the job is live, users can explore ๐Ÿ” available opportunities, search for specific roles, view company details, and save jobs of interest ๐Ÿ’ผ. When a user finds a job they want to apply for, they can submit their application by sharing their profile ๐Ÿ“„. Managers can then review all applications for the job, marking them as checked once reviewed โœ…. Users also have full control over their job search, with options to save, unsave, or cancel their applications, ensuring a smooth and flexible job-hunting experience ๐Ÿš€.


Post Creation and Interaction

Users can create posts ๐Ÿ“„ on the platform, which can include multiple images ๐Ÿ–ผ๏ธ and text โœ๏ธ. These posts can be interacted with by others through comments ๐Ÿ’ฌ, likes โค๏ธ, and saves ๐Ÿ’พ, allowing for dynamic engagement within the application. Users can also save posts for quick access later ๐Ÿ“Œ.

Any user within the platform can publish, edit, or delete their posts. Posts can be composed of text or text with images, and users can create regular posts or company-specific posts. Company posts feature the companyโ€™s name and image instead of the userโ€™s name and can be published by the company owner or any admin within the company. ๐Ÿ’ผ

All users can comment on posts ๐Ÿ’ฌ, like or unlike them โค๏ธ, and save them for future reference ๐Ÿ“Œ. This flexibility enhances the user experience by making it easier to interact with and manage posts, whether they are personal or company-related. ๐Ÿ› ๏ธ


Wallet Management

The application provides robust wallet management features that cater to both administrators and users, ensuring seamless financial transactions within the platform.

User Features:

  • ๐Ÿ’ฐ Transaction History: Users can view detailed histories of their transactions, keeping track of all payments and receipts.
  • ๐Ÿ› ๏ธ Payment Handling: Users can easily manage payments within the platform, including making and receiving payments.
  • ๐Ÿ“Š Statistics Monitoring: Users have access to various statistics related to their financial activities, helping them stay informed about their wallet's status.

Administrator Tools:

  • ๐Ÿ›ก๏ธ Advanced Controls: Administrators can oversee and manage all wallets on the platform, ensuring everything runs smoothly.
  • ๐Ÿšซ Suspend/Unsuspend Funds: Admins can suspend or unsuspend funds as necessary, maintaining the platform's integrity.
  • ๐Ÿ’ณ Deposit/Withdraw Funds: Admins have the ability to deposit or withdraw funds from any wallet, ensuring proper financial management.
  • ๐Ÿ” Transaction Monitoring: Administrators can monitor and validate all cash transactions, ensuring they comply with the platform's standards and regulations.

Freelance Project Management

Our application provides a comprehensive suite of features for managing freelance projects, catering to various roles such as users, explorers, and administrators.

User Features:

  • ๐Ÿ” Browse and Apply: Users can easily browse available freelance projects and apply to those that align with their skills.
  • ๐Ÿ“ˆ Track Progress: Users can monitor the status of their ongoing projects, ensuring they stay on track.
  • ๐Ÿ› ๏ธ Manage Projects: Users have full control over their projects, with the ability to create, update, review, and delete them as needed, allowing for a dynamic and flexible project lifecycle.

Explore Module:

  • ๐Ÿ” Search and Discover: Users can search for projects based on their interests and expertise.
  • โญ Save Favorites: Favorite projects can be saved for easy access later.
  • ๐Ÿ‘๏ธ View Applications: Users can view their applications, keeping track of where theyโ€™ve applied.
  • ๐Ÿšจ Report Issues: If thereโ€™s a problem with a project, users can report it directly within the system.
  • โŒ Unsave Projects: If a project is no longer of interest, users can unsave it to keep their list organized.

Administrator Tools:

  • ๐Ÿ›ก๏ธ Project Oversight: Administrators have powerful tools to oversee all freelance projects, ensuring the platform remains a fair and efficient space for all users.
  • ๐Ÿ”ข Count Projects: Track the number of ongoing and completed projects on the platform.
  • ๐Ÿšซ Block/Unblock Projects: Administrators can block or unblock projects as necessary to maintain quality and compliance.
  • ๐Ÿ“Š Detailed Reports: Admins can view detailed reports of projects, allowing for in-depth analysis and management.

Freelance Contract Management

The application offers a robust and user-friendly system for managing freelance contracts, ensuring smooth and secure interactions among users, explorers, and administrators.

  • Contract Creation and Management:

    • โœ๏ธ Users can effortlessly create, update, and manage their contracts within the platform.
    • ๐Ÿ“„ Multiple PDF Files: The system supports the upload of multiple PDF files, making it easy to include all necessary documentation.
  • Contract Status:

    • โœ… Mark as Successful: Once a project is completed to satisfaction, users can mark contracts as successful.
    • ๐Ÿšจ File Complaints: If issues arise, users can file complaints, which will be reviewed by administrators.
  • Administrative Oversight:

    • ๐Ÿ‘ฎ Administrators have comprehensive oversight capabilities, allowing them to:
      • ๐Ÿ” Resolve Disputes: Admins can intervene to resolve disputes between parties.
      • โฌ‡๏ธ Download Files: Access and download any attached files for review.
      • ๐Ÿ“Š Monitor Activities: Keep an eye on contract activities across the platform to ensure compliance and transparency.
  • Explore Module:

    • ๐ŸŒ The explore module provides additional functionalities for users to interact with ongoing contracts:
      • โœ”๏ธ Accept or Refuse: Users can choose to accept or refuse contracts.
      • ๐Ÿšš Shipping: Users can manage the shipping of contracts as needed.
      • ๐Ÿ“‚ Access and Download: All contract files can be accessed and downloaded easily.

Advanced Notification System

The Advanced Notification System is designed to enhance user engagement through intelligent notification management ๐Ÿ“ฒ. Key features include:

  • Activity-Based Notification Management: ๐Ÿ•ต๏ธโ€โ™‚๏ธ Monitors user activity and adjusts notification delivery accordingly. Notifications are paused if a user remains inactive for up to 14 days ๐Ÿ—“๏ธ and will automatically resume upon reactivation ๐Ÿ”„.

  • Multilingual Support: ๐ŸŒ Provides notifications in various languages, including Arabic and English, ensuring accessibility for a diverse user base ๐ŸŒ.

  • Reliable Delivery: ๐Ÿš€ Utilizes Firebase Admin for sending notifications, leveraging its robust infrastructure to ensure timely and dependable communication โฐ.


User-to-User Chat

The User-to-User Chat feature on ProFinder is designed for seamless real-time communication between users within the application ๐Ÿ’ฌ. Key features include:

  • Real-Time Messaging: โšก Utilizes Socket.io for instant communication, allowing users to chat with others in real-time โฑ๏ธ.

  • Connection Status: ๐ŸŒ Tracks and displays the connection status of users, indicating whether they are online ๐ŸŸข or offline ๐Ÿ”ด.

  • Message Status: ๐Ÿ“ฉ Provides clear indicators for message status:

    • Sent: ๐Ÿ“ค Message has been sent from the sender.
    • Delivered: ๐Ÿ“ฅ Message has been received by the recipient.
    • Read: ๐Ÿ‘๏ธ Message has been read by the recipient.
  • Redis Integration: ๐Ÿ—ƒ๏ธ Employs Redis to enhance storage and data retrieval operations, ensuring quick and efficient message handling with minimal latency ๐Ÿš€.

Reporting System

The Reporting System on ProFinder empowers users to report various issues within the platform ๐Ÿšจ. Key features include:

  • User Reporting: ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Allows users to report other users for reasons such as inappropriate posts ๐Ÿšซ, interactions, fraud ๐Ÿ’ณ, or impersonation ๐Ÿ‘ค.

  • Content Reporting: ๐Ÿ“„ Users can also report posts, job opportunities, companies, and other content if they encounter issues or violations โš ๏ธ.

  • Admin Review: ๐Ÿ‘จโ€๐Ÿ’ผ Reports are reviewed by the admin team, who filter and assess each report to determine its validity ๐Ÿ”.

  • Issue Verification: โœ”๏ธ Admins verify reported issues to confirm their legitimacy and take appropriate action based on the findings ๐Ÿ”’.

  • Action and Resolution: โš–๏ธ Appropriate actions are taken to address verified problems, ensuring a safe and compliant environment for all users ๐Ÿ›ก๏ธ.


Support Center Communication

In the event of problems or urgent issues that need resolution ๐Ÿšจ, any user can contact the support center for assistance with matters related to the application ๐Ÿ› ๏ธ. This includes issues with transactions ๐Ÿ’ธ, projects ๐Ÿ“ˆ, or difficulties in publishing ๐Ÿ“ or blocking posts ๐Ÿšซ. The support center is dedicated to reviewing and addressing any concerns to ensure a fair, clean, and user-friendly experience ๐Ÿค.


Protection

Several levels of protection have been applied to ensure a secure user experience, safeguarding both data and financial transactions. These protections include:

  • Rate Limiting: โฑ๏ธ Controls the number of requests each user can make within a specific timeframe, preventing abuse and brute-force attacks.

  • Helmet Integration: ๐Ÿ›ก๏ธ Enhances security by setting appropriate HTTP headers to protect against well-known web vulnerabilities.

  • Bouncer: ๐Ÿšซ Locks out attackers by detecting and mitigating brute-force attempts, ensuring user accounts remain secure.

  • HPP (HTTP Parameter Pollution) Prevention: ๐Ÿšท Sanitizes and validates query parameters to protect against parameter pollution attacks.

  • MongoDB Sanitization: ๐Ÿ”’ Ensures all data sent to the database is sanitized, protecting against injection attacks.

  • Content Security Policy (CSP): ๐Ÿ›ก๏ธ Restricts content sources to trusted origins, adding an additional layer of security against cross-site scripting and data injection.

These robust security measures are designed to protect usersโ€™ data and money, providing a safe and reliable platform experience.

Tools & Technologies ๐Ÿ”ง๐ŸŒ

Purpose Tool/Technology
Framework Express ๐Ÿš€
Database Management MongoDB ๐Ÿ—„๏ธ
Caching System Redis ๐Ÿ—ƒ๏ธ
Token-Based Authentication JWT (JSON Web Token) ๐Ÿ”
Real-Time Communication Socket.IO โšก
Push Notifications and Messaging FCM (Firebase Cloud Messaging) ๐Ÿ“ฌ

Developers

Name Role Technology Linked In Email
Ayman Al-khatib Backend Developer Express.js @Ayman-Al-Khatib ayman.alkhatib.ite@gmail.com
Ahmad Ajajeh Backend Developer Express.js @Ahmad-Ajajeh ajajeh356@gmail.com
Ahmed Nour Haidar Mobile Developer Flutter @Ahmed-Nour-Haider ahmadnourhaidar@gmail.com
Omar Bkdash Mobile Developer Flutter @Omar-Bkdash omarbkdash7@gmail.com
Osama Saddik Frontend Developer React.js @Osama-Saddik saddikosama@gmail.com
Alaa Haidar UI & UX Designer Figma @Alaa-Haidar alaahaidaar@gmail.com

About

ProFinder connects professionals with clients for valuable work opportunities. ๐ŸŒŸ Enjoy secure transactions ๐Ÿ”’, a comprehensive company search ๐Ÿ•ต๏ธโ€โ™‚๏ธ, and enhanced profiles โœจ. With a user-friendly design ๐Ÿ–ฅ๏ธ, ProFinder makes finding freelance gigs ๐Ÿ’ผ, hiring experts ๐Ÿง‘โ€๐Ÿ’ผ, and collaborating ๐Ÿค easy and enjoyable. Explore new opportunities today! ๐Ÿš€

Topics

Resources

License

Stars

Watchers

Forks