Demo Link: Link
This project is a full-stack web application built using the MERN stack. The application includes user authentication, integration with Google Sign-In, and filtering and displaying LinkedIn profiles. The main technologies used are:
- MongoDB: A NoSQL database to store user information, profile filters, and potentially cache LinkedIn profile details.
- Express.js: A backend framework to handle HTTP requests, routes, and interactions with MongoDB.
- React.js: A frontend library to build the user interface.
- Node.js: A JavaScript runtime environment to run the backend server.
- API Endpoints: Created for user registration and authentication.
- User Credentials: Stored securely in MongoDB with hashed passwords using
bcrypt
. - Session Management: Managed using JSON Web Tokens (JWT) for authentication.
- Forms: Created for sign-up and sign-in using React components.
- HTTP Requests: Handled using Axios or Fetch API to communicate with backend endpoints.
- Form Validation: Implemented client-side validation for forms.
- OAuth 2.0 Authentication: Implemented using Passport.js with Google Strategy.
- User Data: Retrieved from Google and stored in MongoDB.
- Google Sign-In Button: Added to allow users to sign in with Google.
- Google Authentication: Handled using the Google Sign-In JavaScript library.
- User Session: Once authenticated, the Google access token is sent to the server to validate and create a user session.
- Dropdown Menus: Created a page with three dropdown menus (college, degree, company) using React components.
- Data Fetching: Fetched data for dropdown options dynamically.
- State Management: Used React's
useState
anduseEffect
to handle dropdown changes and store selected values. - Filter Submission: Added a button to submit selected filters.
- API Endpoint: Implemented to receive filter selections from the frontend.
- LinkedIn Profile Query: Used selected filters to query LinkedIn profiles.
- Data Return: Returned LinkedIn profile data to the frontend for display.
- LinkedIn API: If using LinkedIn's API, obtain API access by registering your application with LinkedIn Developer Platform. Use the API to search for profiles based on selected filters.
- Implemented HTTPS.
- Used
bcrypt
for password hashing. - Validated and sanitized user input to prevent SQL injection and XSS attacks.
- Implemented robust error handling on both the frontend and backend to provide a smooth user experience.
- Considered using Redux or Context API for global state management in React, especially if the app grows in complexity.
- Node.js
- MongoDB
- npm (Node Package Manager)
- Clone the repository.
- Navigate to the backend directory.
- Install dependencies:
npm install
- Create a
.env
file for environment variables:PORT=<Your Port> MONGO_URI=<Your MongoDB URI> JWT_SECRET=<Your JWT Secret> GOOGLE_CLIENT_ID=<Your Google Client ID> GOOGLE_CLIENT_SECRET=<Your Google Client Secret>
- Start the server:
npm start
- Navigate to the frontend directory.
- Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to
http://localhost:<Your Port>
in your browser. - Sign up or sign in using email/password or Google.
- Use the filter options to search for LinkedIn profiles.
Contributions are welcome! Please open an issue or submit a pull request for any changes or improvements.