A Laravel-based contact management system with XML bulk import functionality.
- CRUD Operations: Create, Read, Update, and Delete contacts
- XML Bulk Import: Import multiple contacts from XML files
- Responsive Design: Clean, professional interface using Bootstrap
- Database Support: SQLite database for easy setup
- Form Validation: Server-side validation for all inputs
- Success/Error Messages: User-friendly feedback system
- PHP 8.1 or higher
- Composer
- MySQL
-
Extract the project files
unzip contact-manager.zip cd contact-manager -
Install dependencies
composer install
-
Set up environment
cp .env.example .env php artisan key:generate
-
Configure database
-
The project is pre-configured to use MySQL.
-
Update your
.envfile with the correct database credentials:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_username DB_PASSWORD=your_password
-
-
Run migrations
php artisan migrate
-
Start the development server
php artisan serve
-
Access the application
- Open your browser and go to
http://localhost:8000
- Open your browser and go to
- Click "Add New Contact" or "Add First Contact"
- Fill in the name and phone number
- Click "Save Contact"
- Click "Import XML" in the navigation or main page
- Select an XML file with the following format:
<contacts> <contact> <name>John Doe</name> <phone>+1 234 567 8900</phone> </contact> <contact> <name>Jane Smith</name> <phone>+1 234 567 8901</phone> </contact> </contacts>
- Click "Import Contacts"
- View: Click the eye icon to view contact details
- Edit: Click the pencil icon to edit contact information
- Delete: Click the trash icon to delete a contact (with confirmation)
- Framework: Laravel 10.x
- Database: MySQL
- Frontend: Bootstrap 5.1.3
- Validation: Laravel's built-in validation
- File Upload: Handles XML files up to 2MB
- XML Processing: Uses PHP's SimpleXML for parsing
- The application uses SQLite for simplicity and portability
- All views are responsive and mobile-friendly
- Form validation includes both client-side and server-side checks
- Success and error messages are displayed using Laravel's session flash data
- The XML import validates file type and size before processing