JobJuncton is the platform where you can come and see all the job postings that are there and can actually get the apply link. It is different from others in the sense that we allowing other users to even post the job if they know. To maintain the dignity of the website that only genuine jobs / internship gets posted we have actually few admins who manages all the posted jobs and users on website. They have proper full access to take any actions from deleting post to even users.
-
User can come to website and can do the basic authentication using the email and password and can add their bio and social links or they can simply Login with Google and can edit their bio and social links in profile section.
-
User can goto
/jobsand can find all the listings from latest to oldest -
On the
/jobspage itself , you have the filter options so that you can filter according to your needs like whether you want internship/job or onsite/remote and many more ... -
If you any job posting then you can goto
/jobs/createand can easily create the new job posting . Salary range is must to be defined because we want only those job posted which has some motivation to do -
On the
/user/${userId}we have mutli routes option-
/profilehas the user detail option which shows all the user details like username , role and date on which account is created. And if you visit your own profile then you can see the edit option from where you can simply change your bio and modify social links -
/jobs/mehas all the job listing which the user has posted -
/jobs/bookmarkshas all the bookmarked job posting that user has bookmarked . This route is only visible to user itself (private route) -
/settings/deleteis the route where user can come and can delete their account after 1 simple check (private route)
-
-
On the
/adminroute , admins can access this route only. Here we have 2 routes-
/postshas all the job posting that platform has . Admin can see and delete posts from here -
/usersis the route where all user of website is visible and the admin can delete their account.
-
-
Being the author of post , user can delete their post and also the admin's of the website can do so
-
User can bookmark other posts so that they can apply in future if want
We are using the pretty standard tech that is mostly popular in market
- Frontend: Nextjs, Tailwind Css , Magicui, Shadcn, Typescript
- Backend / DATABASE : Nextjs , Postgresql , Prisma (orm) , Authjs
- Hosting : Vercel
Before going to contribute in this project , i will like to address that just don't spam it for testing your open source skills. You must have knowledge of any of the tech being used and you must be serious for contirbuting .
- Fork this repo and clone the repo
git clone https://github.com/yourusername/Jobjunction
- Copy over the
.env.example&.env.local.examplein the root folder. You can get the google client id and secret from google cloud console .
openssl rand -base64 32 //run this in the terminal pr browser to generate the Auth secret & paste it
- Start the application with this command
docker compose up --build --watch
- To stop and delete container , you can use this
docker compose down
- Fork this repo and clone the repo
git clone https://github.com/yourusername/Jobjunction
- In you pc , move to the folder & install the dependencies
cd Jobjunction
npm install
- Copy over the
.env.example&.env.local.examplein the root folder. You can get the google client id and secret from google cloud console .
openssl rand -base64 32 //run this in the terminal pr browser to generate the Auth secret & paste it
-
In the
.envfile, you can replace theDATABASE_URLwith your's any cloud databse string or local database string -
Push the database first and then re-generate client
npx prisma db push // or npx prisma migrate dev --name init (if want)
npx prisma generate
- Seed the database by running this command
npm run prisma:seed
npx prisma studio
- Start the server
npm run dev
Seeded data detials
[
{
username:admin_user,
password:Hello@1
},
{
username:user,
password:Hello@2
}
]