A Modern Developer Networking Platform
Welcome to the devTinder Frontend repository! This project powers the client-side experience for devTinder β a networking platform where developers can connect, collaborate, and grow professionally.
- Features
- Technologies Used
- Getting Started
- Project Structure
- API Endpoints (Frontend Interaction)
- Deployment
- Contributing
- License
-
Authentication System
- Login/Logout with JWT and cookie-based session
- Global session validation using
AppLayout - Protected & Public route guards with route preservation
- Form validation using
useLoginFormhook - Inline error display and layout-safe error handling
-
Global State Management
- Redux Toolkit (
userSlice,appStore) isAuthenticated,isLoading,userstate maintained globally
- Redux Toolkit (
-
UI Components
- Optimized
Navbarwith memoization andshallowEqual - Reusable
TextInput,PasswordInput Spinnercomponent for loading states- Toast notifications for success (
react-hot-toast)
- Optimized
-
Logout Feature
- Logout implemented via reusable
useLogouthook - Secure backend logout with cookie removal and Redux reset
- Logout implemented via reusable
-
Routing
- React Router v6.23 setup
- Nested layouts (
AppLayout,MainLayout,PublicLayout) NotFoundpage for unknown routes
-
User Experience
-
Fully responsive design (DaisyUI + Tailwind)
-
Mobile-first navigation support
-
Inline validation, no layout shifts during error states
-
Profile Management System
-
Complete edit profile functionality with
createAsyncThunk -
Formik-based profile editing form with validation schema
-
New form field components (
TextInput,TextArea,GenderSelect,SkillsInput) -
Redux-powered profile state management
-
Success/error toast notifications for profile updates
-
-
Developer Feed
- Implemented Feed page with developer cards
- Responsive card design with skills display
- Interactive action buttons (Ignore/Interested)
- Profile picture handling with fallbacks
- Developer profile creation/editing
- Developer discovery cards (swipe or match-based)
- Messaging & real-time chat (WebSocket/Socket.io)
- Notification system for invites/messages
| Category | Technology |
|---|---|
| Framework | React 18 |
| Build Tool | Vite 4 |
| Styling | Tailwind CSS + DaisyUI |
| Routing | React Router v6 |
| State Manager | Redux Toolkit |
| API Handling | Axios 1.5 |
| Notifications | react-hot-toast |
| Backend API | Node.js + Express |
- Node.js β₯ 18.x
- npm β₯ 8.x (or Yarn)
- Git
git clone https://github.com/your-username/devtinder-frontend.git
cd devtinder-frontend
npm install
src/
βββ assets/ # Static files (images, icons)
βββ components/ # Reusable UI components
β βββ auth/ # Auth-related components
β β βββ LoginForm.jsx
β β
β β
β βββ formFields/ # Generic input components
β β βββPasswordInput.jsx
β β βββ TextInput.jsx
β β βββ TextArea.jsx
β β βββ SkillsInput.jsx
β β βββ GenderSelect.jsx
β β
β βββ Navbar.jsx # Memoized Navbar
β βββ Spinner.jsx # Loading spinner
βββ hooks/
β βββ useLoginForm.js # Custom login form logic
β βββ useLogout.js # Reusable logout logic
βββ layouts/ # Layout components (MainLayout, PublicLayout)
β βββ AppLayout.jsx # Global auth/session checker
β βββ MainLayout.jsx # Protected layout with navbar
β βββ PublicLayout.jsx # Login/signup-only layout
βββ pages/ # Route-based pages
β βββ Connections.jsx
β βββ Home.jsx
β βββ LoginPage.jsx
β βββ ErrorPage.jsx
β βββ NotFound.jsx
β βββ Profile.jsx
β βββ .jsx
βββ routes/ # React Router config
β βββ ProtectedRoute.jsx
β βββ PublicRoute.jsx
β βββ router.jsx
β
βββ utils/
β βββ constants.js # API base URL and other constants
β βββ axiosInstance.js # Axios instance with cookies enabled
β βββ formValidators.js # Input validation logic
β βββ profileValidation.js # update profile validation schema
β βββ redux/ # Redux config
β βββ appStore.js
β βββ feedSlice.js
β βββ userSlice.js
βββ App.jsx # Root component
βββ App.css # Global styles
βββ index.css # Tailwind & DaisyUI base styles
βββ Main.jsx.css # Tailwind & DaisyUI base styles
// for later
## Real-time connection requests (your case)