- Overview
- Features
- Technologies Used
- Installation
- Usage
- File Structure
- Firebase Firestore Integration
- Firebase Security Rules
- Contributing
The WORKBOX is a lightweight tool designed to help users manage their job applications efficiently. Users can easily add job listings, update statuses, and track their job application progress all from within their browser.
- Add New Job Listings: Users can input job details including company name, role, application status, and job URL.
- View Job Applications: Display a list of applied jobs with details in an organized manner.
- Edit Job Status: Users can change the status of their applications using a simple dropdown menu.
- User Authentication: Integration with Firebase Authentication for secure access.
- Firestore Database: Store and retrieve job application data in real-time using Firestore.
- HTML/CSS: For the frontend layout and styling.
- JavaScript: For client-side logic and handling user interactions.
- Firebase: For user authentication and Firestore database management.
- Bootstrap: For responsive design and easy styling.
-
Clone the repository:
-
Navigate to the project directory:
cd job-tracker-extension
-
Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions
. - Enable Developer mode (toggle on the top right).
- Click on Load unpacked and select the project directory.
- Open Chrome and navigate to
- Sign In: Click the "Sign In" button to authenticate with your Firebase account.
- Add a Job: Fill in the job details in the form and click "Save Job" to add it to your list.
- View Jobs: Your applied jobs will be displayed in the "Applied Jobs" section.
- Change Status: Click the "Change Status" button next to a job to update its status.
job-tracker-extension/
│
├── dist/
│ ├── backgroundbundled.js
│ └── popup.js
├── popup.html
├── manifest.json
└── styles.css
popup.html
: The main UI for the extension.popup.js
: Handles the logic for adding, viewing, and updating jobs.manifest.json
: Metadata about the extension, including permissions and background scripts. <<<<<<< HEAD-
9d500066dcc266287a2ef065982b9c897a4059a1
This extension uses Firebase Firestore to store and retrieve job application data. Here's how the integration works:
- Add Job: When a new job is added, it's stored in the Firestore database under the authenticated user's document.
- Fetch Jobs: On extension load, jobs are fetched from Firestore and displayed in the UI.
- Update Job Status: Changing the job status updates the Firestore document in real-time.
// Save a new job to Firestore
const saveJobToFirestore = (userId, jobData) => {
const db = firebase.firestore();
db.collection("users")
.doc(userId)
.collection("jobs")
.add(jobData)
.then(() => {
console.log("Job saved successfully!");
})
.catch((error) => {
console.error("Error saving job: ", error);
});
};
To ensure secure access to the Firestore database, the following rules are implemented:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.time < timestamp.date(2024, 11, 1);
}
match /users/{userId}/jobs/{jobId} {
allow read, write: if request.auth.uid == userId;
}
}
}
- Users can only read and write to their own job data.
If you would like to contribute to the project, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature/YourFeature
. - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.