Skip to content

Neem-Sheth/CDC-Portal

Repository files navigation


🚀 Dockerized Next.js Job Application Portal

Welcome to the Dockerized Next.js Job Application Portal! This is a modern job application platform where users can view job details, apply for jobs, and receive email confirmations. The app is Dockerized for easy deployment and scalability. Let's get started! 🎉


📝 Features

  • Job Application Portal: View and apply for jobs with ease. 💼
  • Email Notifications: Receive a confirmation email when you apply for a job. 📧
  • Dockerized Setup: Simple and consistent deployment using Docker and Docker Compose. 🐳
  • Database Integration: MongoDB service for storing job and user data. 🗄️

🔧 Prerequisites

Before running the project locally, make sure you have the following installed:

  • Docker: Get it here.
  • Docker Compose: Install it here.

🚀 How to Run the Project Locally

Follow these simple steps to get the app up and running on your local machine:

1. Clone the Repository

git clone https://github.com/Neem-Sheth/CDC-Portal.git
cd CDC-Portal

2. Add a .env File

Create a .env file in the root directory and configure the required environment variables:

PORT=3000
MONGODB_URI=mongodb://mongo:27017/your_database_name
EMAIL_SERVICE=your_email_service
EMAIL_USER=your_email_address
EMAIL_PASS=your_email_password

💡 Note: Replace placeholders with actual values.

3. Build and Run the Docker Container

Run the following command to build and start the Docker containers:

docker-compose up --build

This will:

  • Build the application Docker image. 🔨
  • Start the application and MongoDB services. 🚀

4. Access the Application

Once everything is up and running, open your browser and go to:

🌍 http://localhost:3000


📁 Project Structure

Here’s a quick overview of the project structure:

.
├── Dockerfile             # Docker configuration for the app
├── docker-compose.yml     # Multi-service Docker configuration
├── package.json           # Dependencies and scripts
├── pages/                 # Next.js pages
├── api/                   # Backend API routes
├── components/            # Reusable React components
├── public/                # Static assets
└── README.md              # Project documentation

🎬 Available Scripts

Here are the commands to run inside the project directory:

  • npm run dev ➡️ Start the development server. ⚡
  • npm run build ➡️ Build the production-ready app. 🚀
  • npm run start ➡️ Start the production server. 💻

✉️ Using Nodemailer

This project integrates Nodemailer to send job application confirmation emails. When a user applies for a job, they will receive an email containing the job details and a confirmation message. 🎉

🛠️ Email Configuration

You’ll need to configure the following environment variables in your .env file:

EMAIL_SERVICE: e.g., gmail
EMAIL_USER: Your email address
EMAIL_PASS: App password or email password (securely stored)

🐳 Docker Commands

Here are some common Docker commands for working with the app:

  • Build Docker Image:

    docker build -t your_project_name .
  • Run the Docker Container:

    docker run -p 3000:3000 your_project_name
  • Stop the Container:

    docker-compose down

🌐 Deployment

To deploy the Dockerized application to the cloud:

  1. Push the Docker image to a registry (e.g., Docker Hub, AWS ECR).
  2. Deploy the image to your preferred cloud platform (e.g., AWS, Azure, Google Cloud, Heroku).

🤝 Contributing

We welcome contributions! Here’s how you can contribute to this project:

  1. Fork this repository.

  2. Create a new branch for your feature/bugfix:

    git checkout -b feature-name
  3. Commit your changes:

    git commit -m "Add feature"
  4. Push to your branch:

    git push origin feature-name
  5. Submit a pull request.


📝 License

This project is licensed under the MIT License.


Thanks for checking out the project! Feel free to contribute or just explore! 🎉