A powerful Spring Boot-based Contact Management System (CMS) designed to provide a user-friendly interface for managing personal contacts with advanced features like search, pagination, and profile management.
- Project Overview
- Features
- Technologies Used
- REST API Endpoints
- Project Structure
- Getting Started
- Screenshots
- License
- Author
Smart Contact Manager is a comprehensive application designed to provide a user-friendly interface for managing personal contacts. It enables users to register, log in, and maintain a list of contacts, which can include details like name, email, phone number, and profile picture. The system offers a seamless experience with intuitive search functionality, pagination for large contact lists, and secure user authentication.
-
User Authentication
- Secure user authentication using Spring Security
- User registration with email verification
- Password management with encryption
-
User Profile Management
- Create and update user profiles
- Personalized dashboard for each user
- User-specific settings and preferences
-
Contact Management
- Add new contacts with comprehensive details
- View contacts with efficient pagination
- Advanced search by name, email, or phone number
- Edit and delete contacts with ease
- Contact categorization and organization
-
Media Management
- Upload profile pictures for contacts
- Cloudinary integration for secure image storage
- Image optimization and thumbnail generation
-
User Experience
- Responsive design using Tailwind CSS
- Custom flash messages for user feedback
- Intuitive navigation and user interface
- Cross-device compatibility
-
API Access
- RESTful API endpoints for programmatic access
- Secure API authentication
- JSON data format for easy integration
| Category | Technologies |
|---|---|
| Backend | Spring Boot, Spring Security, Spring Data JPA (Hibernate) |
| Frontend | Thymeleaf, HTML5, Tailwind CSS, JavaScript |
| Database | MySQL |
| Cloud Services | Cloudinary (Image Upload) |
| Validation | JSR-303 (via Hibernate Validator) |
| Logging | SLF4J with Logback |
| Containerization | Docker, Docker Compose |
| Build Tool | Maven |
| Version Control | Git, GitHub |
| Method | URL | Description |
|---|---|---|
| GET | /user/dashboard |
User dashboard page |
| GET | /user/profile |
User profile page |
| Method | URL | Description |
|---|---|---|
| GET | /user/contacts/add |
View add contact page |
| POST | /user/contacts/add |
Add a new contact |
| GET | /user/contacts |
View all contacts with pagination |
| GET | /user/contacts/search |
Search for contacts |
| DELETE | /user/contacts/delete/{contactId} |
Delete a contact by ID |
| GET | /user/contacts/view/{contactId} |
View contact update page by ID |
| POST | /user/contacts/update/{contactId} |
Update an existing contact by ID |
| Method | URL | Description |
|---|---|---|
| GET | /home |
Home page |
| GET | /about |
About page |
| GET | /services |
Services page |
| GET | /contact |
Contact page |
| Method | URL | Description |
|---|---|---|
| GET | /login |
Login page |
| GET | /register |
Registration page |
| POST | /do-register |
Process registration |
| Method | URL | Description |
|---|---|---|
| GET | /api/contacts/{contactId} |
Retrieve contact details by ID |
src
├── main
│ ├── java
│ │ └── com
│ │ └── scm
│ │ ├── controllers // Controllers for handling user requests
│ │ ├── entities // JPA entities representing data models
│ │ ├── forms // Form objects for request validation
│ │ ├── helpers // Utility classes for common functionalities
│ │ ├── services // Service layer for business logic
│ └── resources
│ ├── templates // Thymeleaf templates for frontend pages
│ ├── application.properties // Application configurations
└── test
└── java
└── com
└── scm
└── tests // Unit tests for the application
- JDK 11 or higher
- Maven 3.6+
- MySQL 8.0+
- Docker (optional, for containerized deployment)
# Clone the repository
git clone https://github.com/khan-sk-dev/Smart-Contact-Manager.git
cd Smart-Contact-Manager
# Build the project
mvn clean install
# Run the application
mvn spring-boot:run# Clone the repository
git clone https://github.com/khan-sk-dev/Smart-Contact-Manager.git
cd Smart-Contact-Manager
# Build and run with Docker Compose
docker-compose up --buildUpdate application.properties with your database credentials:
spring.datasource.url=jdbc:mysql://localhost:3306/contactmanager
spring.datasource.username=your_username
spring.datasource.password=your_passwordFor Cloudinary configuration:
cloudinary.cloud-name=your_cloud_name
cloudinary.api-key=your_api_key
cloudinary.api-secret=your_api_secretصہیب خان – GitHub