Skip to content

JPress-IEEE/Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JPress

Welcome to the JPress repository! This project provides backend services for a job matching application, featuring user management, chat, notifications, offers, recommendations, and feedback for both clients and applicants.

Features

  • User Management: Manage roles for clients and applicants.
  • Chat System: One-on-one messaging and video calls between users.
  • Notifications: Real-time updates and alerts.
  • Service Requests & Offers: Clients post requests and view offers from applicants.
  • Recommendations: Suggest applicants based on requests.
  • Feedback System: Clients rate and review service providers.
  • Bookmarks: Allow users to bookmark offers they are interested in to revisit them later.
  • Translation:The translation feature allows translation from various languages to English

Technology Stack

  • Languages: TypeScript / Node.js / JavaScript
  • Database: MongoDB
  • Framework: Express
  • Tools: Swagger (API docs), Jest (unit testing), Socket.io, Passport, JWT

Getting Started

Prerequisites

  • Node.js / NPM
  • MongoDB instance

Installation

  1. Clone the Repository:

    git clone https://github.com/JPress-IEEE/Backend.git
    cd Backend
  2. Install Dependencies:

    npm install
  3. Set Up Environment Variables:
    Create a .env file with:

    MONGO_URI=
    PUBLIC_KEY=""
    PRIVATE_KEY=""
    ACCESS_KEY_TTL=""
    REFRESH_KEY_TTL=""
    NODE_ENV=
    PORT=
    SALT_WORK_FACTOR=
    GOOGLE_CLIENT_ID=
    GOOGLE_CLIENT_SECRET=
    FACEBOOK_APP_ID=
    FACEBOOK_APP_SECRET=
    LINKEDIN_CLIENT_ID=
    LINKEDIN_CLIENT_SECRET=
    EMAIL_USER=
    EMAIL_PASS=
    EMAIL_SECRET=
    SESSION_SECRET=
    APP_NAME=
    
  4. Build and Start the Server:

    npm run build
    npm run start

Testing

  • Run All Tests:

    npm run test
  • Run Specific Tests:

    npm test -- <path-to-test-file>
  • Test Coverage Report:

    npm run test:coverage
  • Debugging (Watch Mode):

    npm test -- --watch

API Documentation

Access Swagger documentation at:

http://localhost:3000/api-docs

To-Do's

Payment Management

  • Stripe & paypal Integration: Implement secure payment processing between clients and applicants. Ensure smooth financial transactions within the platform and introduce models to track payments and transaction history. Develop endpoints for initiating, confirming, and querying payments. Introduce payment notifications to alert users when payments are processed or confirmed.

Contributing

We welcome contributions to JPress:

  1. Fork the Repository: Create a personal copy on GitHub.
  2. Create a Branch: Develop features or fixes in a new branch.
  3. Commit Changes: Write clear and detailed commit messages.
  4. Submit a Pull Request: Provide a clear description of the changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors