{"id":87534,"date":"2023-04-21T11:57:03","date_gmt":"2023-04-21T06:27:03","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=87534"},"modified":"2023-04-21T11:57:03","modified_gmt":"2023-04-21T06:27:03","slug":"android-job-portal","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/","title":{"rendered":"Android Job Portal &#8211; Jobs at Your Fingertips"},"content":{"rendered":"<p>Today we are going to see and learn to implement an Android Project which is a Job Portal Application in android studio. We\u2019ll understand the complete project development in this article.<\/p>\n<p>The Job Portal application will be helpful for both employers and job seekers. Employers will be able to publish jobs on this application, and users will be able to find jobs that fit their skill sets.<\/p>\n<h3>About Android Job Portal Application<\/h3>\n<p>It will be advantageous for beginners to learn about app development using kotlin and firebase by creating this project from scratch. You will become accustomed to using Android Studio and Firebase while the app is developed.<\/p>\n<p>New jobs can only be generated and added to the database if the user who is now signed in is an admin; otherwise, users can only view the job details that are already saved in the database. Details about the user interface are as follows:<\/p>\n<ol>\n<li>The home page of the job portal application is a login page, where the user needs to enter his\/her email and password in order to login.<\/li>\n<li>If at all the user doesn\u2019t have a account, they can sign up by clicking on the \u2018register\u2019 textview below the \u2018Login\u2019 button.<\/li>\n<li>If an admin signs in, the UI will display two buttons \u2018add new job\u2019 and \u2018logout\u2019 respectively.<\/li>\n<li>If the admin clicks on the \u2018add new job\u2019 button, he\/she will need to fill out the required details in order to save a new job opening in the database, new job details can be saved by clicking on the \u2018Save Data\u2019 button.<\/li>\n<li>If a user signs in, the UI will display two buttons \u2018search jobs\u2019 and \u2018logout\u2019 respectively.<\/li>\n<li>When an user clicks &#8220;search jobs,&#8221; a list of open positions with the employer&#8217;s name and job title displays on the screen; to view more information about a particular position, the user need only click on that job.<\/li>\n<\/ol>\n<h3>Prerequisites for Job Portal using Android<\/h3>\n<p>To develop this Android application the requirements and prerequisites are as follows:<\/p>\n<p><strong>Kotlin:<\/strong> You need first be familiar with Kotlin programming. Given that we will write the app code in the programming language Kotlin, it is necessary.<br \/>\n<strong>XML:<\/strong> Another crucial component of our Android application is XML. It will be applied to the development of the application&#8217;s user interface.<br \/>\n<strong>Android Studio:<\/strong> The core of our application is Android Studio because that is how we will develop it. Also included with Android Studio is an Android virtual device that can be used to test the functionality of applications.<\/p>\n<h3>Download Android Job Portal Project<\/h3>\n<p>Please download the source code of Android Job Portal Project from the following link: <a href=\"https:\/\/techvidvan.s3.amazonaws.com\/android-projects\/kotlin\/JobPortalTechVidvan.zip\"><strong>Android Job Portal Project Code<\/strong><\/a><\/p>\n<h3>Steps to Create Job Portal Project Using Android<\/h3>\n<p>We&#8217;ll now start working on developing a job portal application. Before putting the code into practice, we will learn about its purpose and function throughout this article. So let&#8217;s look at the files and functions needed to run the code:<\/p>\n<p>You must complete a set of steps in order to create this Android car-pooling application. We are here to walk you through every stage of developing an app.<\/p>\n<ol>\n<li>Extract all the files from the downloaded zip file to the location of your choice.<\/li>\n<li>Open Android Studio.<\/li>\n<li>Click on File then Open.<\/li>\n<li>Find and select the folder you extracted earlier and click on OK.<\/li>\n<\/ol>\n<p>You have successfully opened the job portal\u2019s source code in android studio.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87577 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-android-studio.webp\" alt=\"job portal android studio\" width=\"1920\" height=\"1038\" \/><\/p>\n<p>Let&#8217;s go through each file in this project one at a time as we comprehend how the application works.<\/p>\n<p>1. The \u201cactivity_login\u201d is a XML file which is responsible for creating the login page user interface.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".LoginActivity\"&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/title\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Login\"\n        android:textSize=\"35sp\"\n        android:layout_marginTop=\"50dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n    &lt;com.google.android.material.textfield.TextInputLayout\n        android:id=\"@+id\/til_login_email\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"16dp\"\n        android:layout_marginTop=\"35dp\"\n        android:layout_marginEnd=\"16dp\"\n        android:hint=\"Email Id\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/title\"\n        &gt;\n        &lt;EditText\n            android:id=\"@+id\/et_login_email\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            android:inputType=\"textEmailAddress\"\n            \/&gt;\n    &lt;\/com.google.android.material.textfield.TextInputLayout&gt;\n\n    &lt;com.google.android.material.textfield.TextInputLayout\n        android:id=\"@+id\/til_login_password\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"16dp\"\n        android:layout_marginTop=\"35dp\"\n        android:layout_marginEnd=\"16dp\"\n        android:hint=\"Password\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/til_login_email\"\n        &gt;\n        &lt;EditText\n            android:id=\"@+id\/et_login_password\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            android:inputType=\"textPassword\"\n            android:text=\"\"\/&gt;\n    &lt;\/com.google.android.material.textfield.TextInputLayout&gt;\n\n    &lt;Button\n        android:id=\"@+id\/loginBtn\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:gravity=\"center\"\n        android:layout_marginStart=\"16dp\"\n        android:layout_marginEnd=\"16dp\"\n        android:layout_marginTop=\"32dp\"\n        android:text=\"Login\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/til_login_password\"\/&gt;\n\n    &lt;LinearLayout\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"5dp\"\n        android:orientation=\"horizontal\"\n        android:gravity=\"center_vertical\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/loginBtn\"\n        &gt;\n        &lt;TextView\n            android:id=\"@+id\/dont_have_an_account\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"16dp\"\n            android:padding=\"5dp\"\n            android:text=\"Don\\'t have an account?\"\n            \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/register\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"16dp\"\n            android:foreground=\"?attr\/selectableItemBackground\"\n            android:padding=\"5dp\"\n            android:textStyle=\"bold\"\n            android:text=\"Register\"\n            \/&gt;\n\n    &lt;\/LinearLayout&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87578 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-activity-login.webp\" alt=\"job portal activity login\" width=\"1920\" height=\"1032\" \/><\/p>\n<p>2. The \u201cactivity_register\u201d is a XML file which is responsible for creating the register page\u2019s user interface.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".RegisterActivity\"&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/title\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Register\"\n        android:textSize=\"35sp\"\n        android:layout_marginTop=\"50dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n    &lt;com.google.android.material.textfield.TextInputLayout\n        android:id=\"@+id\/til_register_email\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"16dp\"\n        android:layout_marginTop=\"35dp\"\n        android:layout_marginEnd=\"16dp\"\n        android:hint=\"Email Id\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/title\"\n        &gt;\n        &lt;EditText\n            android:id=\"@+id\/et_register_email\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            android:inputType=\"textEmailAddress\"\n            \/&gt;\n    &lt;\/com.google.android.material.textfield.TextInputLayout&gt;\n\n    &lt;com.google.android.material.textfield.TextInputLayout\n        android:id=\"@+id\/til_register_password\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"16dp\"\n        android:layout_marginTop=\"35dp\"\n        android:layout_marginEnd=\"16dp\"\n        android:hint=\"Password\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/til_register_email\"\n        &gt;\n        &lt;EditText\n            android:id=\"@+id\/et_register_password\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            android:inputType=\"textPassword\"\n            android:text=\"\"\/&gt;\n    &lt;\/com.google.android.material.textfield.TextInputLayout&gt;\n\n    &lt;Button\n        android:id=\"@+id\/registerBtn\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:gravity=\"center\"\n        android:layout_marginStart=\"16dp\"\n        android:layout_marginEnd=\"16dp\"\n        android:layout_marginTop=\"32dp\"\n        android:text=\"Register\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/til_register_password\"\/&gt;\n\n    &lt;LinearLayout\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"5dp\"\n        android:orientation=\"horizontal\"\n        android:gravity=\"center_vertical\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/registerBtn\"\n        &gt;\n        &lt;TextView\n            android:id=\"@+id\/have_an_account\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"16dp\"\n            android:padding=\"5dp\"\n            android:text=\"Have an account?\"\n            \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/login\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"16dp\"\n            android:foreground=\"?attr\/selectableItemBackground\"\n            android:padding=\"5dp\"\n            android:textStyle=\"bold\"\n            android:text=\"Login\"\n            \/&gt;\n\n    &lt;\/LinearLayout&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87579 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-activity-register.webp\" alt=\"job portal activity register\" width=\"1920\" height=\"1035\" \/><\/p>\n<p>3. The \u201cactivity_main\u201d is a XML file responsible for creating the user interface that admin is redirected to when they sign in.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".MainActivity\"&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/textView\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Welcome Admin\"\n        android:layout_marginTop=\"200dp\"\n        android:textSize=\"28sp\"\n        android:gravity=\"center\"\n        android:textStyle=\"bold\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/textView1\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"TechVidvan\"\n        android:layout_marginTop=\"10dp\"\n        android:textSize=\"20sp\"\n        android:gravity=\"center\"\n        android:textStyle=\"bold\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/textView\"\/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/addNewJob\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Add New Job\"\n        android:layout_marginTop=\"90dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/textView\" \/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/logoutBtn\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Logout\"\n        android:layout_marginTop=\"15dp\"\n        android:layout_marginStart=\"10dp\"\n        android:layout_marginEnd=\"10dp\"\n        android:padding=\"5sp\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/addNewJob\"\n        tools:ignore=\"MissingConstraints\" \/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87580 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-activity-main.webp\" alt=\"job portal activity main\" width=\"1920\" height=\"1026\" \/><\/p>\n<p>4. The \u201cactivity_insertion\u201d is a XML file responsible for UI where the admin will be required to enter the details of the new job.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".InsertionActivity\"&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etCompanyName\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"50dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Company's Name\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etRole\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"20dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Job Role\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etCompanyName\"\/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etSalary\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"20dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Salary\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etRole\" \/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etStartDate\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"20dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Start Date (DD-MM-YY)\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etSalary\" \/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etDuration\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"20dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Duration\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etStartDate\" \/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etContact\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"20dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Contact No.\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etDuration\" \/&gt;\n\n    &lt;EditText\n        android:id=\"@+id\/etEmail\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"20dp\"\n        android:ems=\"10\"\n        android:inputType=\"textPersonName\"\n        android:hint=\"Email Id\"\n        android:layout_marginStart=\"15dp\"\n        android:layout_marginEnd=\"15dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etContact\" \/&gt;\n\n\n    &lt;Button\n        android:id=\"@+id\/btnSave\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"32dp\"\n        android:text=\"Save Data\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/etEmail\" \/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87581 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-activity-insertion.webp\" alt=\"job portal activity insertion\" width=\"1914\" height=\"1032\" \/><\/p>\n<p>5. The \u201cactivity_user\u201d is a XML file which is responsible for creating UI for the page where the user is redirected after signing in.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".UserActivity\"&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/textView\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Welcome User\"\n        android:layout_marginTop=\"200dp\"\n        android:textSize=\"28sp\"\n        android:gravity=\"center\"\n        android:textStyle=\"bold\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n    &lt;TextView\n        android:id=\"@+id\/textView1\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"TechVidvan\"\n        android:layout_marginTop=\"10dp\"\n        android:textSize=\"20sp\"\n        android:gravity=\"center\"\n        android:textStyle=\"bold\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/textView\"\/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/search\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Search Jobs\"\n        android:layout_marginTop=\"90dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/textView\" \/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/logoutBtn\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Logout\"\n        android:layout_marginTop=\"15dp\"\n        android:layout_marginStart=\"10dp\"\n        android:layout_marginEnd=\"10dp\"\n        android:padding=\"5sp\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id\/search\"\n        tools:ignore=\"MissingConstraints\" \/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87593 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-Activity-User.webp\" alt=\"job portal activity user\" width=\"1919\" height=\"1035\" \/><\/p>\n<p>6. \u2018activity_fetching\u2019 is an XML file responsible for creating the UI of the activity which will display a list of job opportunities saved in the database.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".FetchingActivity\"&gt;\n\n    &lt;androidx.recyclerview.widget.RecyclerView\n        android:id=\"@+id\/rvJob\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        android:layout_marginStart=\"1dp\"\n        android:layout_marginTop=\"1dp\"\n        android:layout_marginEnd=\"1dp\"\n        android:layout_marginBottom=\"1dp\"\n        tools:listitem=\"@layout\/jon_list_item\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" \/&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87582 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-fetching-activity.webp\" alt=\"job portal fetching activity\" width=\"1920\" height=\"1027\" \/><\/p>\n<p>7. \u2018activity_job_details\u2019 is the XML file responsible creating the UI of the activity that displays the details about a particular job.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\".JobDetailsActivity\"&gt;\n\n    &lt;LinearLayout\n        android:id=\"@+id\/linearLayout\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        android:orientation=\"vertical\"&gt;\n\n\n        &lt;LinearLayout\n            android:id=\"@+id\/id_lin\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"30dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginTop=\"20dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"Company's Name\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\" \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvName\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n\n        &lt;\/LinearLayout&gt;\n\n\n        &lt;LinearLayout\n            android:id=\"@+id\/contact_lin\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"40dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"Job Role\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\" \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvRole\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n\n        &lt;\/LinearLayout&gt;\n\n        &lt;LinearLayout\n\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"40dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"\n\n            &gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"Salary\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\"\n\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvSalary\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n\n        &lt;\/LinearLayout&gt;\n\n\n        &lt;LinearLayout\n\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"40dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"\n\n            &gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n\n                    android:gravity=\"center\"\n                    android:text=\"Start Date\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\"\n\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvStartDate\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n\n        &lt;\/LinearLayout&gt;\n\n        &lt;LinearLayout\n\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"40dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"\n\n            &gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n\n                    android:gravity=\"center\"\n                    android:text=\"Duration\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\"\n\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvDuration\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n\n        &lt;\/LinearLayout&gt;\n\n        &lt;LinearLayout\n\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"40dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"\n\n            &gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n\n                    android:gravity=\"center\"\n                    android:text=\"Contact\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\"\n\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvContact\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n        &lt;\/LinearLayout&gt;\n\n        &lt;LinearLayout\n\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"40dp\"\n            android:layout_marginLeft=\"10dp\"\n            android:layout_marginRight=\"10dp\"\n            android:orientation=\"horizontal\"\n            android:weightSum=\"2\"\n\n            &gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"0.6\"\n                android:background=\"@color\/white1\"&gt;\n\n                &lt;TextView\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n\n                    android:gravity=\"center\"\n                    android:text=\"Mail Resume at :\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"15sp\"\n\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n            &lt;LinearLayout\n                android:layout_width=\"0dp\"\n                android:layout_height=\"match_parent\"\n                android:layout_weight=\"1.4\"&gt;\n\n                &lt;TextView\n                    android:id=\"@+id\/tvEmail\"\n                    android:layout_width=\"match_parent\"\n                    android:layout_height=\"wrap_content\"\n                    android:layout_gravity=\"center\"\n                    android:gravity=\"center\"\n                    android:text=\"\"\n                    android:textColor=\"@color\/black\"\n                    android:textSize=\"20sp\"\n\n                    \/&gt;\n\n            &lt;\/LinearLayout&gt;\n\n        &lt;\/LinearLayout&gt;\n\n        &lt;Button\n            android:id=\"@+id\/btnBack\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"32dp\"\n            android:text=\"back\"\n            android:layout_gravity=\"center\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvEmail\" \/&gt;\n\n    &lt;\/LinearLayout&gt;\n\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87583 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-details-activity.webp\" alt=\"job details activity\" width=\"1920\" height=\"1080\" \/><\/p>\n<p>Let\u2019s now go through the files that are responsible for the working and functionality of the application.<\/p>\n<p>1. \u2018LoginActivity.kt\u2019 is a kotlin file which is responsible for enabling the user to sign in using their credentials.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class LoginActivity : AppCompatActivity() {\n    private lateinit var register: TextView\n    private lateinit var loginBtn: Button\n    private lateinit var et_login_email: EditText\n    private lateinit var et_login_password: EditText\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_login)\n\n        register = findViewById(R.id.register)\n        loginBtn = findViewById(R.id.loginBtn)\n        et_login_email = findViewById(R.id.et_login_email)\n        et_login_password = findViewById(R.id.et_login_password)\n\n        register.setOnClickListener{\n            val intent = Intent(this@LoginActivity, RegisterActivity::class.java)\n            startActivity(intent)\n            finish()\n        }\n\n        loginBtn.setOnClickListener {\n            when{\n                TextUtils.isEmpty(et_login_email.text.toString().trim{ it &lt;= ' '}) -&gt; {\n                    Toast.makeText(this@LoginActivity,\"Enter Email\", Toast.LENGTH_SHORT).show()\n                }\n\n                TextUtils.isEmpty(et_login_password.text.toString().trim{ it &lt;= ' '}) -&gt; {\n                    Toast.makeText(this@LoginActivity,\"Enter Password\", Toast.LENGTH_SHORT).show()\n                }\n\n                else -&gt;{\n                    val email:String = et_login_email.text.toString().trim{it &lt;= ' '}\n                    val password:String = et_login_password.text.toString().trim{it &lt;= ' '}\n                    if(email!=\"admin@gmail.com\"){\n                        Log.d(\"Tag\", \"$email\"+\" \"+\"$password\")\n                        FirebaseAuth.getInstance().signInWithEmailAndPassword(email, password)\n                            .addOnCompleteListener { task -&gt;\n                                if (task.isSuccessful) {\n                                    Toast.makeText(\n                                        this,\n                                        \"Logged in Successfully\",\n                                        Toast.LENGTH_SHORT\n                                    ).show()\n                                    val intent =\n                                        Intent(this@LoginActivity, UserActivity::class.java)\n                                    intent.flags =\n                                        Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK\n                                    startActivity(intent)\n                                    finish()\n                                } else {\n                                    Toast.makeText(\n                                        this,\n                                        task.exception!!.message.toString(),\n                                        Toast.LENGTH_SHORT\n                                    ).show()\n                                }\n                            }\n                    }else{\n                        FirebaseAuth.getInstance().signInWithEmailAndPassword(email, password)\n                            .addOnCompleteListener { task -&gt;\n                                if (task.isSuccessful) {\n                                    val intent =\n                                        Intent(this@LoginActivity, MainActivity::class.java)\n                                    startActivity(intent)\n                                    finish()\n                                } else {\n                                    Toast.makeText(\n                                        this,\n                                        task.exception!!.message.toString(),\n                                        Toast.LENGTH_SHORT\n                                    ).show()\n                                }\n                            }\n                    }\n                }\n            }\n        }\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87584 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-login-activity.webp\" alt=\"job portal login activity\" width=\"1920\" height=\"1038\" \/><\/p>\n<p>2. \u2018RegisterActivity.kt\u2019 is a class that enables a new user to register themselves using email and password.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class RegisterActivity : AppCompatActivity() {\n    private lateinit var registerBtn: Button\n    private lateinit var et_register_email: EditText\n    private lateinit var et_register_password: EditText\n    private lateinit var login: TextView\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_register)\n\n        registerBtn = findViewById(R.id.registerBtn)\n        et_register_email = findViewById(R.id.et_register_email)\n        et_register_password = findViewById(R.id.et_register_password)\n        login = findViewById(R.id.login)\n        registerBtn.setOnClickListener {\n            when{\n                TextUtils.isEmpty(et_register_email.text.toString().trim{ it &lt;= ' '}) -&gt; {\n                    Toast.makeText(this@RegisterActivity,\"Enter Email\", Toast.LENGTH_SHORT).show()\n                }\n\n                TextUtils.isEmpty(et_register_password.text.toString().trim{ it &lt;= ' '}) -&gt; {\n                    Toast.makeText(this@RegisterActivity,\"Enter Password\", Toast.LENGTH_SHORT).show()\n                }\n\n                else -&gt;{\n                    val email:String = et_register_email.text.toString().trim{it &lt;= ' '}\n                    val password:String = et_register_password.text.toString().trim{it &lt;= ' '}\n\n                    FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, password)\n                        .addOnCompleteListener(\n                            { task -&gt;\n                                if(task.isSuccessful){\n                                    val firebaseUser: FirebaseUser = task.result!!.user!!\n                                    Toast.makeText(this,\"Registered Successfully\", Toast.LENGTH_SHORT).show()\n                                    val intent = Intent(this@RegisterActivity, UserActivity::class.java)\n                                    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK\n                                    intent.putExtra(\"user_id\",firebaseUser.uid)\n                                    intent.putExtra(\"email_id\",email)\n                                    startActivity(intent)\n                                    finish()\n                                }else{\n                                    Toast.makeText(this,task.exception!!.message.toString(), Toast.LENGTH_SHORT).show()\n                                }\n                            })\n                }\n            }\n        }\n\n        login.setOnClickListener {\n            val intent = Intent(this@RegisterActivity, LoginActivity::class.java)\n            startActivity(intent)\n            finish()\n        }\n    }\n}<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87585 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-register-activity.webp\" alt=\"job portal register activity\" width=\"1920\" height=\"1024\" \/><\/p>\n<p>3. \u201cMainActivity\u201d is a class which is responsible for the functioning of the activity which the admin is redirected after signing in.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class MainActivity : AppCompatActivity() {\n    private lateinit var logoutBtn: Button\n    private lateinit var addNewJob:Button\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n        logoutBtn = findViewById(R.id.logoutBtn)\n        addNewJob = findViewById(R.id.addNewJob)\n\n        addNewJob.setOnClickListener {\n            startActivity(Intent(this@MainActivity, InsertionActivity::class.java))\n        }\n\n        logoutBtn.setOnClickListener {\n            FirebaseAuth.getInstance().signOut()\n            startActivity(Intent(this@MainActivity, LoginActivity::class.java))\n            finish()\n        }\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87586 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-main-activity.webp\" alt=\"job portal main activity\" width=\"1920\" height=\"1032\" \/><\/p>\n<p>4. \u201cInsertionActivity\u201d is a class which is responsible for the functioning of the activity which takes input from the admin about the new job and saves onto the database.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class InsertionActivity : AppCompatActivity() {\n    private lateinit var etcompanyName: EditText\n    private lateinit var etrole: EditText\n    private lateinit var etsalary: EditText\n    private lateinit var etstartDate: EditText\n    private lateinit var etDuration: EditText\n    private lateinit var etcontact: EditText\n    private lateinit var etemail: EditText\n    private lateinit var btnSave:Button\n    private lateinit var dbRef: DatabaseReference\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_insertion)\n\n        etcompanyName = findViewById(R.id.etCompanyName)\n        etrole = findViewById(R.id.etRole)\n        etsalary = findViewById(R.id.etSalary)\n        etstartDate = findViewById(R.id.etStartDate)\n        etDuration = findViewById(R.id.etDuration)\n        etcontact = findViewById(R.id.etContact)\n        etemail = findViewById(R.id.etEmail)\n        btnSave = findViewById(R.id.btnSave)\n\n        dbRef = FirebaseDatabase.getInstance().getReference(\"Jobs\")\n        btnSave.setOnClickListener {\n            saveData()\n        }\n    }\n\n    private fun saveData() {\n        val name = etcompanyName.text.toString()\n        val role = etrole.text.toString()\n        val salary = etsalary.text.toString()\n        val startDate = etstartDate.text.toString()\n        val duration = etDuration.text.toString()\n        val contact = etcontact.text.toString()\n        val email = etemail.text.toString()\n        val id = dbRef.push().key!!\n\n        if(name.isEmpty() || role.isEmpty() || salary.isEmpty() || startDate.isEmpty() || duration.isEmpty() || contact.isEmpty() || email.isEmpty()){\n            Toast.makeText(this, \"Enter details\", Toast.LENGTH_SHORT).show()\n        }else{\n            val jobModel = JobModel(id,name, role, salary, startDate, duration, contact, email)\n            dbRef.child(id).setValue(jobModel)\n                .addOnCompleteListener {\n                    Toast.makeText(this, \"Job data saved successfully\", Toast.LENGTH_SHORT).show()\n                    etcompanyName.text.clear()\n                    etrole.text.clear()\n                    etsalary.text.clear()\n                    etstartDate.text.clear()\n                    etDuration.text.clear()\n                    etcontact.text.clear()\n                    etemail.text.clear()\n\n            startActivity(Intent(this@InsertionActivity, MainActivity::class.java))\n                }\n        }\n\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87587 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-insertion-activity.webp\" alt=\"job portal insertion activity\" width=\"1920\" height=\"1032\" \/><\/p>\n<p>5. \u2018UserActivity.kt\u2019 is a class which is responsible for the functioning of the activity which the user is redirected after signing in.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class UserActivity : AppCompatActivity() {\n    private lateinit var logoutBtn: Button\n    private lateinit var search: Button\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_user)\n\n        logoutBtn = findViewById(R.id.logoutBtn)\n        search = findViewById(R.id.search)\n\n        search.setOnClickListener {\n            startActivity(Intent(this@UserActivity, FetchingActivity::class.java))\n        }\n        logoutBtn.setOnClickListener {\n            FirebaseAuth.getInstance().signOut()\n            startActivity(Intent(this@UserActivity, LoginActivity::class.java))\n            finish()\n        }\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87588 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-user-activity.webp\" alt=\"job portal user activity\" width=\"1920\" height=\"1032\" \/><\/p>\n<p>6. \u2018FetchingActivity.kt\u2019 is a class which displays the list of jobs saved in the database when the \u2018Search Jobs\u2019 button is clicked by user.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class FetchingActivity : AppCompatActivity() {\n    private lateinit var jobRecyclerView: RecyclerView\n    private lateinit var dbRef: DatabaseReference\n    private lateinit var jobList: ArrayList&lt;JobModel&gt;\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_fetching)\n\n        jobRecyclerView = findViewById(R.id.rvJob)\n        jobRecyclerView.layoutManager = LinearLayoutManager(this)\n        jobRecyclerView.hasFixedSize()\n\n        jobList = arrayListOf&lt;JobModel&gt;()\n\n        getJobData()\n    }\n\n    private fun getJobData() {\n        dbRef = FirebaseDatabase.getInstance().getReference(\"Jobs\")\n\n        dbRef.addValueEventListener(object : ValueEventListener {\n            override fun onDataChange(snapshot: DataSnapshot) {\n                jobList.clear()\n                if(snapshot.exists()){\n                    for(jobSnap in snapshot.children){\n                        val jobData =jobSnap.getValue(JobModel::class.java)\n                        jobList.add(jobData!!)\n                    }\n\n                    val mAdapter =JobAdapter(jobList)\n                    jobRecyclerView.adapter =mAdapter\n\n                    mAdapter.setOnItemClickListener(object : JobAdapter.onItemClickListener{\n                        override fun onItemClick(position: Int) {\n                            val intent = Intent(this@FetchingActivity, JobDetailsActivity::class.java)\n                            intent.putExtra(\"name\",jobList[position].name)\n                            intent.putExtra(\"role\",jobList[position].role)\n                            intent.putExtra(\"salary\",jobList[position].salary)\n                            intent.putExtra(\"startDate\",jobList[position].startDate)\n                            intent.putExtra(\"duration\",jobList[position].duration)\n                            intent.putExtra(\"contact\",jobList[position].contact)\n                            intent.putExtra(\"email\",jobList[position].email)\n                            startActivity(intent)\n                        }\n\n                    })\n                }\n            }\n\n            override fun onCancelled(error: DatabaseError) {\n\n            }\n\n        })\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87589 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-portal-fetching-activitykt.webp\" alt=\"job portal fetching activity(kt)\" width=\"1920\" height=\"1038\" \/><\/p>\n<p>7. \u2018JobAdapter.kt\u2019 is an adapter class which is necessary to set and initialize the recycler view in FetchingActivity.kt file.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class JobAdapter(private val jobList: ArrayList&lt;JobModel&gt;): RecyclerView.Adapter&lt;JobAdapter.ViewHolder&gt;() {\n    private lateinit var mListener: onItemClickListener\n    interface onItemClickListener{\n        fun onItemClick(position: Int)\n    }\n\n    fun setOnItemClickListener(clickListener: onItemClickListener) {\n        mListener = clickListener\n    }\n    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):JobAdapter.ViewHolder {\n        val itemView =\n            LayoutInflater.from(parent.context).inflate(R.layout.jon_list_item,parent,false)\n        return ViewHolder(itemView, mListener)\n    }\n\n    override fun onBindViewHolder(holder: JobAdapter.ViewHolder, position: Int) {\n        val currentJob = jobList[position]\n        holder.tvName.text =currentJob.name\n        holder.tvRole.text=currentJob.role\n    }\n\n    override fun getItemCount(): Int {\n        return jobList.size\n    }\n\n    class ViewHolder(itemView: View,clickListener:onItemClickListener): RecyclerView.ViewHolder(itemView) {\n        val tvName: TextView = itemView.findViewById(R.id.tvName)\n        val tvRole: TextView = itemView.findViewById(R.id.tvRole)\n        init{\n            itemView.setOnClickListener {\n                clickListener.onItemClick(adapterPosition)\n            }\n        }\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-87590\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-adapter.webp\" alt=\"job adapter\" width=\"1920\" height=\"1080\" \/><\/p>\n<p>8. \u2018JobDetailsActivity.kt\u2019 is a class which is responsible for displaying the job details to the user.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class JobDetailsActivity : AppCompatActivity() {\n    private lateinit var name: TextView\n    private lateinit var salary: TextView\n    private lateinit var role: TextView\n    private lateinit var startDate: TextView\n    private lateinit var duration: TextView\n    private lateinit var contact: TextView\n    private lateinit var email: TextView\n    private lateinit var btnBack: Button\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_job_details)\n\n        name = findViewById(R.id.tvName)\n        salary = findViewById(R.id.tvSalary)\n        role = findViewById(R.id.tvRole)\n        startDate = findViewById(R.id.tvStartDate)\n        duration = findViewById(R.id.tvDuration)\n        contact = findViewById(R.id.tvContact)\n        email = findViewById(R.id.tvEmail)\n        btnBack = findViewById(R.id.btnBack)\n\n        name.text =intent.getStringExtra(\"name\")\n        salary.text =intent.getStringExtra(\"salary\")\n        role.text =intent.getStringExtra(\"role\")\n        startDate.text =intent.getStringExtra(\"startDate\")\n        duration.text =intent.getStringExtra(\"duration\")\n        contact.text =intent.getStringExtra(\"contact\")\n        email.text =intent.getStringExtra(\"email\")\n\n        btnBack.setOnClickListener {\n            startActivity(Intent(this@JobDetailsActivity, FetchingActivity::class.java))\n        }\n    }\n}\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87591 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-details-activitykt.webp\" alt=\"job details activity(kt)\" width=\"1920\" height=\"1032\" \/><\/p>\n<p>9. \u2018JobModel.kt\u2019 is a data class in which the details of the new job can be passed which can then be saved in the database.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">package com.example.jobportal_techvidvan\n\ndata class JobModel (\n    var id: String? =  null,\n    var name: String? = null,\n    var role: String? = null,\n    var salary: String? = null,\n    var startDate: String? = null,\n    var duration: String? = null,\n    var contact: String? = null,\n    var email: String? = null,\n        )<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87592 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/job-model.webp\" alt=\"job model\" width=\"1901\" height=\"1034\" \/><\/p>\n<h3>Android Job Portal App Output<\/h3>\n<p>1. Login Page:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87607 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Login-Page-output-2.webp\" alt=\"login page output\" width=\"400\" height=\"597\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>2. Registration Page (new user signing up on their own):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87608 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Register-Page-output-1.webp\" alt=\"register page output\" width=\"400\" height=\"608\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>3. New user successfully registered on the database:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87598 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Registration-Successful-output-.webp\" alt=\"registration successful output\" width=\"1916\" height=\"905\" \/><\/p>\n<p>4. Activity to which the admin is redirected after signing in:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-87609\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Main-Activity-output-1.webp\" alt=\"Main Activity output\" width=\"400\" height=\"807\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>5. Adding a new job to the database:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87610 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Add-New-Job-output-1.webp\" alt=\"add new job output\" width=\"400\" height=\"660\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87611 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/New-Job-Details-output-1.webp\" alt=\"new job details output\" width=\"400\" height=\"673\" \/><\/p>\n<p>6. New job successfully stored onto the database:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87602 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/New-Job-Saved-Successfully-output.webp\" alt=\"new job saved successfully output\" width=\"1920\" height=\"910\" \/><\/p>\n<p>7. Activity to which the admin is redirected after signing in:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87612 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/User-Activity-output-2.webp\" alt=\"user activity output\" width=\"400\" height=\"582\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>8. List of jobs that are saved in the database getting displayed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-87613 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Job-List-output-1.webp\" alt=\"job list output\" width=\"400\" height=\"487\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>9. Job Details of the job selected by the user:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-87614\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/04\/Job-Details-output-1.webp\" alt=\"Job Details output\" width=\"400\" height=\"521\" data-wp-editing=\"1\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Summary<\/h3>\n<p>So in this project, we have learned how to create and develop a job portal app in android studio. This project is highly beneficial for beginners since it familiarizes users with utilizing XML to create user interfaces, switching between activities by clicking a button, using firebase as a database, especially when inserting data into the database or fetching data from it, user authentication using firebase. We sincerely hope you enjoyed it, and we are sure you will enjoy implementing it into reality.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are going to see and learn to implement an Android Project which is a Job Portal Application in android studio. We\u2019ll understand the complete project development in this article. The Job Portal&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":87576,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4955],"tags":[4951,4952,4953,4954,3874,4910,4956,3010,4957],"class_list":["post-87534","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android-kotlin-tutorials","tag-android-job-portal","tag-android-job-portal-app","tag-android-job-portal-app-project","tag-android-job-portal-project","tag-android-project-for-beginners","tag-android-project-for-practice","tag-android-project-idea","tag-android-projects","tag-job-portal-app-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Job Portal - Jobs at Your Fingertips - TechVidvan<\/title>\n<meta name=\"description\" content=\"Find your next Android job on our portal. With advanced search and filtering capabilities, we make it easy for you to land your dream job.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Job Portal - Jobs at Your Fingertips - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Find your next Android job on our portal. With advanced search and filtering capabilities, we make it easy for you to land your dream job.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-21T06:27:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/04\/android-project-job-portal-application.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Job Portal - Jobs at Your Fingertips - TechVidvan","description":"Find your next Android job on our portal. With advanced search and filtering capabilities, we make it easy for you to land your dream job.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/","og_locale":"en_US","og_type":"article","og_title":"Android Job Portal - Jobs at Your Fingertips - TechVidvan","og_description":"Find your next Android job on our portal. With advanced search and filtering capabilities, we make it easy for you to land your dream job.","og_url":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2023-04-21T06:27:03+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/04\/android-project-job-portal-application.webp","type":"image\/webp"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Android Job Portal &#8211; Jobs at Your Fingertips","datePublished":"2023-04-21T06:27:03+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/"},"wordCount":1137,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/04\/android-project-job-portal-application.webp","keywords":["android job portal","android job portal app","android job portal app project","android job portal project","android project for beginners","android project for practice","android project idea","android projects","job portal app project"],"articleSection":["Android Kotlin Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/","url":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/","name":"Android Job Portal - Jobs at Your Fingertips - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/04\/android-project-job-portal-application.webp","datePublished":"2023-04-21T06:27:03+00:00","description":"Find your next Android job on our portal. With advanced search and filtering capabilities, we make it easy for you to land your dream job.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/android-job-portal\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/04\/android-project-job-portal-application.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2023\/04\/android-project-job-portal-application.webp","width":1200,"height":628,"caption":"android project job portal application"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/android-job-portal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Android Job Portal &#8211; Jobs at Your Fingertips"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/87534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=87534"}],"version-history":[{"count":0,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/87534\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/87576"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=87534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=87534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=87534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}