https://github.com/bhanupm07/internvilla
A job listing full stack project
https://github.com/bhanupm07/internvilla
chakra-ui-react expressjs fullstack-development mern-stack nodejs react-router-dom tailwindcss usecontext-hook
Last synced: 2 months ago
JSON representation
A job listing full stack project
- Host: GitHub
- URL: https://github.com/bhanupm07/internvilla
- Owner: bhanupm07
- Created: 2024-03-16T18:02:29.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T11:32:19.000Z (over 1 year ago)
- Last Synced: 2025-02-14T15:47:17.650Z (over 1 year ago)
- Topics: chakra-ui-react, expressjs, fullstack-development, mern-stack, nodejs, react-router-dom, tailwindcss, usecontext-hook
- Language: JavaScript
- Homepage: https://internvilla.vercel.app
- Size: 265 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Internvilla: Internship Discovery Platform
Internvilla is a MERN stack web platform designed to help users discover and apply for internships. The platform features a unique coin-earning system where users earn coins by completing their profile and adding experiences/projects. These coins can be used to apply for internships listed on the platform.
### [Explore Internvilla Now](https://internvilla.vercel.app/)
### [Source Code](https://github.com/bhanupm07/internvilla)
## 🚀 Features
- **Explore Internships**: Discover internships scraped from [Cuvette](https://cuvette.tech), neatly listed with detailed descriptions and application requirements.
- **Profile Management**: Users can fill in their details, add experiences and projects to earn coins, which are used to apply for internships.
- **Coin Earning System**: An integrated reward system that incentivizes users to complete their profiles and enrich their portfolio.
- **Secure Authentication**: Register and login with OTP-based email verification via Nodemailer.
- **Responsive Design**: Fully optimized for mobile and desktop devices with seamless navigation.
## 🛠 Tech Stack
### Frontend
- **React**: Modular and dynamic interface.
- **Context API**: State management across different components.
- **TailwindCSS**: Utility-first CSS framework for rapid styling.
- **ChakraUI**: Accessible, reusable components for building UI.
### Backend
- **Node.js**: JavaScript runtime for server-side logic.
- **Express.js**: Fast, minimalist web framework for Node.js.
- **MongoDB**: NoSQL database using Mongoose ORM for structured data handling.
### Additional Tools
- **Cloudinary**: Image hosting and handling service for profile pictures and media content.
- **Nodemailer**: Email service for sending OTPs during registration and login.
## 💡 Key Highlights
### 1. Explore Internships
The platform scrapes internships from Cuvette, populating the Explore page. Users can browse internships, check requirements, and apply using their earned coins.
### 2. Profile Page
Users can enhance their profiles by adding personal details, experiences, and projects. Each contribution helps them earn coins that can be redeemed when applying for internships.
### 3. Coin Earning System
A unique gamified experience that rewards users for completing their profile and adding value to their portfolio. Coins are essential for applying to internships and can be earned through:
- Completing basic profile details.
- Adding educational qualifications.
- Adding work experiences or projects.
### 4. Authentication & Authorization
- **OTP Verification**: Secure login and signup with one-time password (OTP) sent via email.
- **Authentication**: Users are authenticated before they can apply to internships or make changes to their profiles.
## ⚙️ Installation & Setup
### Prerequisites
- Node.js (v14 or higher)
- MongoDB Atlas (or local MongoDB instance)
### Clone the Repository
```bash
git clone https://github.com/yourusername/internvilla.git
cd internvilla
```
### Backend Setup
1. Navigate to the backend directory:
```bash
cd backend
```
2. Install dependencies:
```bash
npm install
```
3. Create a .env file in the backend directory and configure the following environment variables:
```bash
MONGO_URI=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
EMAIL_SERVICE=
EMAIL_USER=
EMAIL_PASS=
```
4. Start the backend server:
```bash
npm start
```
### Frontend Setup
1. Navigate to the frontend directory:
```bash
cd frontend
```
2. Install dependencies:
```bash
npm install
```
3. Create a .env file in the frontend directory and configure the following environment variable:
```bash
REACT_APP_BACKEND_URL=
```
4. Start the frontend development server:
```bash
npm start
```
## 📽 Demo
### [Watch the demo video here](https://drive.google.com/file/d/1xZbd9ziuIlhE_cVQCxhxmzRSxh__gyuX/view)
You can record a demo of the project using tools like Loom or OBS Studio. Once recorded, upload the demo and paste the link here to showcase the functionality of the platform.
## 🔮 Future Enhancements
- **Admin Panel**: Add an admin interface for managing internships and user data.
- **Notifications**: Implement real-time notifications for new internships and profile completion reminders.
- **Payment Gateway**: Integrate a payment system for additional premium services.
## 🙌 Contributing
Contributions are welcome! Please fork this repository, make your changes, and submit a pull request.