https://github.com/manasscodes/devconnector-coursera
A full-stack MERN social network app for developers. Built as part of a Coursera project-based course to learn MongoDB, Express.js, React, and Node.js. Features user authentication, profile creation, posts, and a RESTful API. Ideal for beginners exploring full-stack development.
https://github.com/manasscodes/devconnector-coursera
expressjs mongodb nodejs reactjs redux-toolkit vite
Last synced: 3 months ago
JSON representation
A full-stack MERN social network app for developers. Built as part of a Coursera project-based course to learn MongoDB, Express.js, React, and Node.js. Features user authentication, profile creation, posts, and a RESTful API. Ideal for beginners exploring full-stack development.
- Host: GitHub
- URL: https://github.com/manasscodes/devconnector-coursera
- Owner: manasscodes
- Created: 2025-06-28T14:07:57.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-19T16:15:29.000Z (11 months ago)
- Last Synced: 2025-07-19T20:05:34.493Z (11 months ago)
- Topics: expressjs, mongodb, nodejs, reactjs, redux-toolkit, vite
- Language: JavaScript
- Homepage:
- Size: 565 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DevConnector ๐จโ๐ป
A full-stack MERN social network application designed specifically for developers to connect, share experiences, and showcase their skills. Built as part of a Coursera project-based course to master MongoDB, Express.js, React, and Node.js development.






---
## ๐ Table of Contents
- [Overview](#overview)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Project Structure](#project-structure)
- [Prerequisites](#prerequisites)
- [Installation & Setup](#installation--setup)
- [Environment Configuration](#environment-configuration)
- [API Documentation](#api-documentation)
- [Frontend Architecture](#frontend-architecture)
- [Database Schema](#database-schema)
- [Authentication & Security](#authentication--security)
- [Deployment](#deployment)
- [Contributing](#contributing)
- [License](#license)
- [Acknowledgments](#acknowledgments)
---
## ๐ฏ Overview
DevConnector is a comprehensive social networking platform tailored for software developers. The application enables developers to:
- **Create Professional Profiles**: Showcase skills, experience, and education
- **Connect with Peers**: Follow and interact with other developers
- **Share Knowledge**: Post updates, ask questions, and share insights
- **Build Networks**: Like, comment, and engage with the developer community
- **Showcase Projects**: Link GitHub repositories and display portfolio work
This project demonstrates modern full-stack development practices using the MERN stack, featuring JWT-based authentication, RESTful API design, responsive UI, and robust state management.
---
## โจ Features
### ๐ Authentication & Authorization
- **Secure Registration/Login**: JWT-based authentication system
- **Protected Routes**: Role-based access control for sensitive operations
- **Session Management**: Automatic token refresh and secure logout
- **Password Security**: Bcrypt encryption for password hashing
### ๐ค Profile Management
- **Developer Profiles**: Comprehensive profile creation with professional details
- **Experience & Education**: Timeline of work history and educational background
- **Skills Showcase**: Tag-based skill representation
- **Social Links**: Integration with GitHub, LinkedIn, Twitter, and other platforms
- **Avatar Integration**: Gravatar integration for profile pictures
### ๐ฑ Social Features
- **Post Creation**: Rich text posts with formatting support
- **Interactive Feed**: Real-time feed of developer posts
- **Engagement System**: Like and comment functionality
- **Developer Discovery**: Browse and connect with other developers
- **Activity Tracking**: Monitor interactions and engagement
### ๐ ๏ธ Technical Features
- **Responsive Design**: Mobile-first responsive UI
- **Real-time Updates**: Live notifications and feed updates
- **Search Functionality**: Find developers by skills, location, or experience
- **Data Validation**: Comprehensive input validation on both client and server
- **Error Handling**: Graceful error management with user-friendly messages
---
## ๐๏ธ Tech Stack
### **Backend**
- **Runtime**: Node.js (v16+)
- **Framework**: Express.js
- **Database**: MongoDB with Mongoose ODM
- **Authentication**: JSON Web Tokens (JWT)
- **Validation**: Express Validator
- **Security**: Bcrypt, Helmet, CORS
- **API Testing**: Postman collection included
### **Frontend**
- **Library**: React 18+ with Hooks
- **State Management**: Redux Toolkit
- **Routing**: React Router v6
- **Styling**: CSS3, Bootstrap 5
- **HTTP Client**: Axios
- **UI Components**: Custom React components
- **Form Handling**: Controlled components with validation
### **Development Tools**
- **Build Tool**: Webpack (via Create React App)
- **Package Manager**: npm
- **Code Formatting**: Prettier
- **Development Server**: Concurrently for full-stack development
- **Environment**: dotenv for environment variables
---
## ๐ Project Structure
```
devconnector-coursera/
โ
โโโ ๐ client/ # React frontend application
โ โโโ ๐ public/
โ โ โโโ index.html
โ โ โโโ favicon.ico
โ โโโ ๐ src/
โ โ โโโ ๐ components/ # Reusable React components
โ โ โ โโโ ๐ auth/ # Authentication components
โ โ โ โ โโโ Login.js
โ โ โ โ โโโ Register.js
โ โ โ โโโ ๐ dashboard/ # Dashboard components
โ โ โ โ โโโ Dashboard.js
โ โ โ โ โโโ Education.js
โ โ โ โ โโโ Experience.js
โ โ โ โโโ ๐ layout/ # Layout components
โ โ โ โ โโโ Alert.js
โ โ โ โ โโโ Landing.js
โ โ โ โ โโโ Navbar.js
โ โ โ โ โโโ Spinner.js
โ โ โ โโโ ๐ posts/ # Post-related components
โ โ โ โ โโโ Posts.js
โ โ โ โ โโโ PostItem.js
โ โ โ โ โโโ PostForm.js
โ โ โ โโโ ๐ profile/ # Profile components
โ โ โ โ โโโ Profile.js
โ โ โ โ โโโ ProfileTop.js
โ โ โ โ โโโ ProfileAbout.js
โ โ โ โโโ ๐ profile-forms/ # Profile form components
โ โ โ โ โโโ CreateProfile.js
โ โ โ โ โโโ EditProfile.js
โ โ โ โ โโโ AddExperience.js
โ โ โ โ โโโ AddEducation.js
โ โ โ โโโ ๐ profiles/ # Profiles listing
โ โ โ โ โโโ Profiles.js
โ โ โ โ โโโ ProfileItem.js
โ โ โ โโโ ๐ routing/ # Route components
โ โ โ โโโ PrivateRoute.js
โ โ โโโ ๐ redux/ # Redux state management
โ โ โ โโโ ๐ actions/ # Action creators
โ โ โ โ โโโ alert.js
โ โ โ โ โโโ auth.js
โ โ โ โ โโโ post.js
โ โ โ โ โโโ profile.js
โ โ โ โโโ ๐ reducers/ # Redux reducers
โ โ โ โ โโโ alert.js
โ โ โ โ โโโ auth.js
โ โ โ โ โโโ index.js
โ โ โ โ โโโ post.js
โ โ โ โ โโโ profile.js
โ โ โ โโโ store.js # Redux store configuration
โ โ โโโ ๐ utils/ # Utility functions
โ โ โ โโโ api.js
โ โ โ โโโ setAuthToken.js
โ โ โ โโโ formatDate.js
โ โ โโโ App.js # Main App component
โ โ โโโ App.css # Global styles
โ โ โโโ index.js # React DOM entry point
โ โโโ package.json # Client dependencies
โ
โโโ ๐ server/ # Express.js backend application
โ โโโ ๐ config/ # Configuration files
โ โ โโโ db.js # Database connection
โ โ โโโ default.json # Default configuration
โ โโโ ๐ middleware/ # Custom middleware
โ โ โโโ auth.js # JWT authentication middleware
โ โโโ ๐ models/ # Mongoose data models
โ โ โโโ User.js # User model
โ โ โโโ Profile.js # Profile model
โ โ โโโ Post.js # Post model
โ โโโ ๐ routes/ # API route handlers
โ โ โโโ ๐ api/
โ โ โโโ auth.js # Authentication routes
โ โ โโโ posts.js # Posts CRUD routes
โ โ โโโ profile.js # Profile management routes
โ โ โโโ users.js # User registration routes
โ โโโ server.js # Express server entry point
โ โโโ package.json # Server dependencies
โ
โโโ ๐ README.md # Project documentation
โโโ ๐ .gitignore # Git ignore rules
โโโ ๐ package.json # Root package.json for scripts
```
---
## ๐ Prerequisites
Before running this application, ensure you have the following installed:
### **Required Software**
- **Node.js**: Version 16.0 or higher
- **npm**: Version 8.0 or higher (comes with Node.js)
- **MongoDB**: Local installation or MongoDB Atlas account
- **Git**: For version control
### **Development Tools (Recommended)**
- **VS Code**: With React, Node.js, and MongoDB extensions
- **Postman**: For API testing
- **MongoDB Compass**: For database visualization
- **Chrome DevTools**: For debugging React applications
### **API Keys & Services**
- **MongoDB Atlas**: Database connection string
- **GitHub Personal Access Token**: For repository integration
- **Gravatar Account**: For profile avatars (optional)
---
## ๐ Installation & Setup
### **1. Clone the Repository**
```bash
# Clone the project
git clone https://github.com/manasscodes/devconnector-coursera.git
# Navigate to project directory
cd devconnector-coursera
```
### **2. Server Setup**
```bash
# Navigate to server directory
cd server
# Install server dependencies
npm install
# Install additional security packages
npm install helmet cors express-rate-limit
# Return to root directory
cd ..
```
### **3. Client Setup**
```bash
# Navigate to client directory
cd client
# Install client dependencies
npm install
# Install additional UI packages (if needed)
npm install react-router-dom@6 axios redux @reduxjs/toolkit
# Return to root directory
cd ..
```
### **4. Root Level Setup**
```bash
# Install concurrently for running both server and client
npm install
# Verify installation
npm run dev
```
---
## โ๏ธ Environment Configuration
### **Server Configuration**
Create `server/config/default.json`:
```json
{
"mongoURI": "mongodb://localhost:27017/devconnector",
"jwtSecret": "your-super-secret-jwt-key-here",
"githubToken": "your-github-personal-access-token"
}
```
### **Production Configuration**
Create `server/config/production.json`:
```json
{
"mongoURI": "your-mongodb-atlas-connection-string",
"jwtSecret": "your-production-jwt-secret",
"githubToken": "your-github-token"
}
```
### **Environment Variables**
Create `.env` file in the root directory:
```env
NODE_ENV=development
PORT=5000
MONGODB_URI=mongodb://localhost:27017/devconnector
JWT_SECRET=your-jwt-secret-key
GITHUB_TOKEN=your-github-token
CLIENT_URL=http://localhost:3000
```
### **MongoDB Setup**
#### **Local MongoDB**
```bash
# Start MongoDB service
mongod
# Connect to MongoDB shell
mongo
# Create database
use devconnector
# Create a user (optional)
db.createUser({
user: "devconnector",
pwd: "password123",
roles: ["readWrite"]
})
```
#### **MongoDB Atlas (Cloud)**
1. Create account at [MongoDB Atlas](https://www.mongodb.com/atlas)
2. Create a new cluster
3. Set up database user and password
4. Whitelist your IP address
5. Get connection string and add to configuration
---
## ๐ API Documentation
### **Authentication Endpoints**
#### **POST /api/users** - Register User
```http
POST /api/users
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"password": "password123"
}
```
#### **POST /api/auth** - Login User
```http
POST /api/auth
Content-Type: application/json
{
"email": "john@example.com",
"password": "password123"
}
```
#### **GET /api/auth** - Get Current User
```http
GET /api/auth
Authorization: Bearer
```
### **Profile Endpoints**
#### **GET /api/profile/me** - Get Current User Profile
```http
GET /api/profile/me
Authorization: Bearer
```
#### **POST /api/profile** - Create/Update Profile
```http
POST /api/profile
Authorization: Bearer
Content-Type: application/json
{
"company": "Tech Corp",
"website": "https://techcorp.com",
"location": "San Francisco, CA",
"bio": "Passionate full-stack developer",
"status": "Senior Developer",
"githubusername": "johndoe",
"skills": "JavaScript,React,Node.js,MongoDB",
"social": {
"linkedin": "https://linkedin.com/in/johndoe",
"twitter": "https://twitter.com/johndoe"
}
}
```
#### **PUT /api/profile/experience** - Add Experience
```http
PUT /api/profile/experience
Authorization: Bearer
Content-Type: application/json
{
"title": "Senior Developer",
"company": "Tech Solutions Inc",
"location": "New York, NY",
"from": "2020-01-15",
"to": "2023-03-20",
"current": false,
"description": "Led development of scalable web applications"
}
```
### **Posts Endpoints**
#### **GET /api/posts** - Get All Posts
```http
GET /api/posts
Authorization: Bearer
```
#### **POST /api/posts** - Create Post
```http
POST /api/posts
Authorization: Bearer
Content-Type: application/json
{
"text": "Just deployed my first MERN application! ๐"
}
```
#### **PUT /api/posts/like/:id** - Like/Unlike Post
```http
PUT /api/posts/like/60c72b2f9b1d8b3a4c8e6f7a
Authorization: Bearer
```
### **Error Responses**
All endpoints return consistent error responses:
```json
{
"errors": [
{
"msg": "Error message description",
"param": "field_name",
"location": "body"
}
]
}
```
---
## ๐จ Frontend Architecture
### **Component Hierarchy**
```
App.js
โโโ Navbar
โโโ Alert
โโโ Routes
โ โโโ Landing
โ โโโ Register
โ โโโ Login
โ โโโ Dashboard
โ โ โโโ DashboardActions
โ โ โโโ Experience
โ โ โโโ Education
โ โโโ CreateProfile
โ โโโ EditProfile
โ โโโ Profiles
โ โ โโโ ProfileItem
โ โโโ Profile
โ โ โโโ ProfileTop
โ โ โโโ ProfileAbout
โ โ โโโ ProfileExperience
โ โ โโโ ProfileEducation
โ โ โโโ ProfileGithub
โ โโโ Posts
โ โโโ PostForm
โ โโโ PostItem
โโโ PrivateRoute (HOC)
```
### **Redux State Structure**
```javascript
{
auth: {
token: "jwt-token-string",
isAuthenticated: true,
loading: false,
user: {
id: "user-id",
name: "User Name",
email: "user@example.com",
avatar: "gravatar-url"
}
},
profile: {
profile: { /* current user profile */ },
profiles: [ /* all profiles */ ],
repos: [ /* github repositories */ ],
loading: false,
error: {}
},
post: {
posts: [ /* all posts */ ],
post: { /* single post */ },
loading: false,
error: {}
},
alert: [
{
id: "alert-id",
msg: "Alert message",
alertType: "success"
}
]
}
```
### **Custom Hooks**
The application uses several custom hooks for improved code reusability:
```javascript
// useAuth.js - Authentication hook
const useAuth = () => {
const { token, isAuthenticated, user } = useSelector(state => state.auth);
return { token, isAuthenticated, user };
};
// useProfile.js - Profile management hook
const useProfile = () => {
const dispatch = useDispatch();
const { profile, loading } = useSelector(state => state.profile);
const createProfile = (profileData) => {
dispatch(createProfileAction(profileData));
};
return { profile, loading, createProfile };
};
```
---
## ๐๏ธ Database Schema
### **User Model**
```javascript
{
_id: ObjectId,
name: String (required),
email: String (required, unique),
password: String (required, hashed),
avatar: String (gravatar URL),
date: Date (default: Date.now)
}
```
### **Profile Model**
```javascript
{
_id: ObjectId,
user: ObjectId (ref: 'users'),
company: String,
website: String,
location: String,
status: String (required),
skills: [String] (required),
bio: String,
githubusername: String,
experience: [
{
title: String (required),
company: String (required),
location: String,
from: Date (required),
to: Date,
current: Boolean,
description: String
}
],
education: [
{
school: String (required),
degree: String (required),
fieldofstudy: String (required),
from: Date (required),
to: Date,
current: Boolean,
description: String
}
],
social: {
youtube: String,
twitter: String,
facebook: String,
linkedin: String,
instagram: String
},
date: Date (default: Date.now)
}
```
### **Post Model**
```javascript
{
_id: ObjectId,
user: ObjectId (ref: 'users'),
text: String (required),
name: String,
avatar: String,
likes: [
{
user: ObjectId (ref: 'users')
}
],
comments: [
{
user: ObjectId (ref: 'users'),
text: String (required),
name: String,
avatar: String,
date: Date (default: Date.now)
}
],
date: Date (default: Date.now)
}
```
---
## ๐ Authentication & Security
### **JWT Authentication Flow**
1. **Registration/Login**: User provides credentials
2. **Token Generation**: Server creates JWT with user payload
3. **Token Storage**: Client stores token in localStorage
4. **Request Headers**: Token sent in Authorization header
5. **Token Verification**: Server validates token on protected routes
6. **Auto-logout**: Token expiration triggers automatic logout
### **Security Measures**
#### **Password Security**
```javascript
// Bcrypt hashing with salt rounds
const saltRounds = 10;
const hashedPassword = await bcrypt.hash(password, saltRounds);
```
#### **Input Validation**
```javascript
// Express Validator middleware
const registerValidation = [
check('name', 'Name is required').not().isEmpty(),
check('email', 'Please include a valid email').isEmail(),
check('password', 'Password must be 6 or more characters').isLength({ min: 6 })
];
```
#### **Security Headers**
```javascript
// Helmet.js security headers
app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
scriptSrc: ["'self'"],
imgSrc: ["'self'", "data:", "https:"]
}
}
}));
```
#### **Rate Limiting**
```javascript
// Rate limiting middleware
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limit each IP to 100 requests per windowMs
message: 'Too many requests from this IP'
});
```
---
## ๐ Deployment
### **Development Mode**
```bash
# Run both client and server concurrently
npm run dev
# Run server only
npm run server
# Run client only
npm run client
```
### **Production Build**
```bash
# Build client for production
cd client
npm run build
# Set production environment
export NODE_ENV=production
# Start production server
cd ..
npm start
```
### **Heroku Deployment**
#### **Prepare for Deployment**
```bash
# Create production branch (local only)
git checkout -b production
# Add production config
git add -f server/config/production.json
git commit -m "Add production config"
# Create Heroku app
heroku create your-app-name
# Set environment variables
heroku config:set NODE_ENV=production
heroku config:set JWT_SECRET=your-production-jwt-secret
heroku config:set MONGODB_URI=your-mongodb-atlas-uri
```
#### **Deploy to Heroku**
```bash
# Push to Heroku
git push heroku production:main
# View logs
heroku logs --tail
# Open deployed app
heroku open
```
### **Vercel Deployment (Frontend)**
#### **Setup Vercel**
```bash
# Install Vercel CLI
npm i -g vercel
# Login to Vercel
vercel login
# Deploy from client directory
cd client
vercel
# Set environment variables in Vercel dashboard
# REACT_APP_API_URL=your-backend-url
```
### **Docker Deployment**
#### **Dockerfile**
```dockerfile
# Multi-stage build for production
FROM node:16-alpine as build
# Build client
WORKDIR /app/client
COPY client/package*.json ./
RUN npm ci --only=production
COPY client/ ./
RUN npm run build
# Production server
FROM node:16-alpine
WORKDIR /app
COPY server/package*.json ./
RUN npm ci --only=production
COPY server/ ./
COPY --from=build /app/client/build ./public
EXPOSE 5000
CMD ["node", "server.js"]
```
#### **Docker Compose**
```yaml
version: '3.8'
services:
app:
build: .
ports:
- "5000:5000"
environment:
- NODE_ENV=production
- MONGODB_URI=mongodb://mongo:27017/devconnector
depends_on:
- mongo
mongo:
image: mongo:5.0
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
volumes:
mongo_data:
```
---
## ๐ค Contributing
We welcome contributions to DevConnector! Here's how you can help:
### **Development Workflow**
1. **Fork the Repository**
```bash
git clone https://github.com/manasscodes/devconnector-coursera.git
cd devconnector-coursera
```
2. **Create Feature Branch**
```bash
git checkout -b feature/amazing-feature
```
3. **Make Changes**
- Follow existing code style
- Add tests for new features
- Update documentation
4. **Commit Changes**
```bash
git commit -m "Add amazing feature"
```
5. **Push and Create PR**
```bash
git push origin feature/amazing-feature
```
### **Code Style Guidelines**
#### **JavaScript/React**
- Use ES6+ features
- Follow functional component patterns
- Use React Hooks over class components
- Implement proper error boundaries
#### **File Organization**
- Components in `client/src/components/`
- Redux actions in `client/src/redux/actions/`
- API routes in `server/routes/api/`
- Models in `server/models/`
#### **Naming Conventions**
- Components: PascalCase (`UserProfile.js`)
- Files: camelCase (`userService.js`)
- Constants: UPPER_SNAKE_CASE (`API_BASE_URL`)
- CSS classes: kebab-case (`user-profile`)
### **Testing Guidelines**
```bash
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Run integration tests
npm run test:integration
```
---
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
```
MIT License
Copyright (c) 2024 Manas Kolaskar
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
---
## ๐ Acknowledgments
### **Course & Learning**
- **Coursera**: Platform for project-based learning
- **MERN Stack Community**: For extensive documentation and support
- **Brad Traversy**: Original DevConnector concept and methodology
### **Technologies**
- **MongoDB**: For flexible document database
- **Express.js**: For robust web application framework
- **React**: For building user interfaces
- **Node.js**: For server-side JavaScript runtime
### **Contributors**
- **Manas Kolaskar** - *Initial work* - [@manasscodes](https://github.com/manasscodes)
### **Special Thanks**
- Open source community for amazing packages and tools
- Stack Overflow community for problem-solving assistance
- GitHub for hosting and version control
- All beta testers and early users
---
## ๐ Support & Contact
### **Developer**
**Manas Kolaskar**
- ๐ Full-Stack Developer | MERN | GenAI Projects
- ๐ GitHub: [@manasscodes](https://github.com/manasscodes)
- ๐ซ LinkedIn: [Manas Kolaskar](https://www.linkedin.com/in/manaskolaskar)
- ๐ง Email: [Contact via LinkedIn](https://www.linkedin.com/in/manaskolaskar)
### **Project Links**
- ๐ **Repository**: [DevConnector Coursera](https://github.com/manasscodes/devconnector-coursera)
- ๐ **Issues**: [Report Issues](https://github.com/manasscodes/devconnector-coursera/issues)
- ๐ก **Discussions**: [Join Discussions](https://github.com/manasscodes/devconnector-coursera/discussions)
### **Getting Help**
If you encounter any issues or have questions:
1. Check the [Issues](https://github.com/manasscodes/devconnector-coursera/issues) page
2. Search existing discussions
3. Create a new issue with detailed description
4. Join our community discussions
---
## ๐ Project Status
- โ
**Backend API**: Complete with authentication, profiles, and posts
- โ
**Frontend React App**: Responsive UI with Redux state management
- โ
**Database Integration**: MongoDB with Mongoose ODM
- ๐ **Deployment**: In progress - preparing for production deployment
- ๐ **Documentation**: Comprehensive README and API documentation
- ๐งช **Testing**: Unit and integration tests implementation planned
---
โญ๏ธ **Star this repository if you find it helpful!**
*This project is built for educational purposes as part of a Coursera course and is open to improvements and contributions from the developer community.*