A comprehensive address book management system with separate User and Admin applications.
- β User authentication and registration
- β Create, edit, and manage personal contacts
- β Assign contacts to multiple groups
- β Search and filter contacts
- β Rich contact information (social links, job details)
- β Admin authentication
- β Create and manage groups
- β Search across all user addresses
- β Assign addresses to groups
- β Dashboard with statistics
- β User management
- Node.js with Express.js
- MySQL database
- JWT authentication
- bcryptjs for password hashing
- express-validator for input validation
- helmet for security
- CORS enabled
- React.js (User App)
- React.js (Admin App)
- Material-UI components
- Axios for API calls
- React Router for navigation
- Node.js (v14 or higher)
- MySQL (v8.0 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/1234-ad/addressbook-fullstack.git cd addressbook-fullstack -
Install backend dependencies
cd backend npm install -
Database Setup
# Create MySQL database mysql -u root -p CREATE DATABASE addressbook; exit # Import schema mysql -u root -p addressbook < ../schema.sql
-
Environment Configuration
cp .env.example .env # Edit .env with your database credentials -
Start the backend server
npm run dev
-
Install User App dependencies
cd frontend/user-app npm install -
Start User App
npm start # Runs on http://localhost:3000
-
Install Admin App dependencies
cd frontend/admin-app npm install -
Start Admin App
npm start # Runs on http://localhost:3001
- login - User authentication and roles
- addresses - Contact information
- groups - Contact groups
- address_groups - Many-to-many relationship
- Username: admin
- Password: admin123
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/profile- Get user profilePOST /api/auth/logout- User logout
GET /api/addresses- Get user's addressesPOST /api/addresses- Create new addressPUT /api/addresses/:id- Update addressDELETE /api/addresses/:id- Delete addressGET /api/addresses/:id- Get single address
GET /api/groups- Get all groupsGET /api/groups/:id- Get group detailsGET /api/groups/:id/addresses- Get addresses in group
GET /api/admin/groups- Get all groups (admin)POST /api/admin/groups- Create groupPUT /api/admin/groups/:id- Update groupDELETE /api/admin/groups/:id- Delete groupGET /api/admin/addresses/search- Search all addressesPOST /api/admin/addresses/:id/groups- Assign address to groupsGET /api/admin/dashboard- Get dashboard statistics
- JWT token-based authentication
- Password hashing with bcrypt
- Input validation and sanitization
- Rate limiting
- CORS protection
- Helmet security headers
- SQL injection prevention
- Register/Login to access your address book
- Create contacts with detailed information
- Assign contacts to groups for organization
- Search and filter your contacts
- Edit or delete contacts as needed
- Login with admin credentials
- Create and manage groups
- Search across all user addresses
- Assign addresses to appropriate groups
- View dashboard statistics
- Dashboard - View and manage all contacts
- Contact Management - Add, edit, delete contacts
- Group Assignment - Organize contacts into groups
- Search & Filter - Find contacts quickly
- Admin Dashboard - System overview and statistics
- Group Management - Create and manage contact groups
- Address Search - Search across all user addresses
- Group Assignment - Assign addresses to groups
-
Start Backend Server
cd backend && npm run dev
-
Start User App
cd frontend/user-app && npm start
-
Start Admin App
cd frontend/admin-app && npm start
-
Access Applications
- User App: http://localhost:3000
- Admin App: http://localhost:3001
- API Server: http://localhost:5000
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License.
- Developer: [Your Name]
- Version: 1.2
- Date: August 2025
Completed Features:
- β Backend API with all endpoints
- β Database schema and sample data
- β User authentication system
- β User App with contact management
- β Admin App with group management
- β Search and filtering functionality
- β Group assignment features
- β Dashboard with statistics
Ready for Production! π