Introduction
In today’s fast-paced world, managing personal and professional connections efficiently is crucial. Introducing the Smart Contact Manager (SCM)—a powerful tool designed to simplify and enhance the way you manage your contacts. With a user-centric approach and a range of robust features, SCM is more than just a contact list; it’s your gateway to seamless and intuitive contact management.
Key Features
- User Signup and Authentication: Effortlessly create an account with your email and password, or opt for quick sign-ups using Google or GitHub. Enjoy enhanced security with email verification to ensure the integrity of your account.
- Contact Management: Add contacts with ease, including their pictures for a more personalized touch. Upload these images to the cloud using AWS or Cloudinary for secure and scalable storage.
- Comprehensive View: Browse through all your contacts with a user-friendly interface. View detailed information, update entries, and delete contacts as needed.
- Communication Made Easy: Compose and send emails directly from SCM, complete with text and attachments. Streamline your communication without leaving the application.
- Advanced Search and Organization: Quickly find specific contacts with powerful search functionality and pagination for efficient navigation. Export your contact data to Excel for offline access and organization.
- Personalization and Usability: Mark your favorite contacts for quick access. Customize your experience with both dark and light themes to suit your preference.
- Profile Management: View and edit your own profile details effortlessly, ensuring that your information is always up to date.
- Feedback and Improvement: Share your thoughts and suggestions to help us continuously improve SCM and meet your needs more effectively.
Technologies
- Backend:
- Spring Boot (latest)
- Spring Framework
- Spring MVC
- Spring Data JPA (ORM)
- Spring Security (for authentication and email services)
- Java Email Services (for sending and receiving emails)
- PostgreSQL (database)
- AWS/Cloudinary SDK (for file storage)
- Frontend:
- Thymeleaf (template engine)
- Tailwind CSS (for styling)
- Flowbite (for UI components)
- JavaScript (for interactivity)
- Other:
- OAuth2 (for social login with Google and GitHub)
- Validation (for input validation)
- ModelMapper (for object mapping)
- PDF/Excel tools (for generating reports)
- Lombok (for reducing boilerplate code)
- DevTools (for development convenience)
Project Dependencies
- Spring Dependencies:
- Spring Web
- Spring Thymeleaf
- Spring Data JPA
- Spring Validation
- Spring Security
- Spring OAuth2 Client
- Other Dependencies:
- ModelMapper
- Spring Boot Starter Mail
- Lombok li>
- Spring Boot DevTools
- MySQL Connector (or PostgreSQL Connector if using PostgreSQL)
Important Notes for Setup
- Tailwind CSS Setup:
Run the following command to compile Tailwind CSS:
npx tailwindcss -i ./src/main/resources/static/css/input.css -o ./src/main/resources/static/css/output.css --watch
- Include Output CSS in HTML:
Add the following line to your HTML files to include the compiled CSS:
<link rel="stylesheet" data-th-href="@{'/css/output.css'}">
- Flowbite Integration:
Include Flowbite CSS and JavaScript using CDN links in your HTML files for enhanced UI components.
-
OAuth2 Client Configuration:
Add the following configurations in your
application.properties
file for Google and GitHub OAuth2 setup:Google Configuration
spring.security.oauth2.client.registration.google.client-name=google
spring.security.oauth2.client.registration.google.client-id= **add your own google api client id **
spring.security.oauth2.client .registration.google.client-secret= **add also add your own google api client secret **
spring.security.oauth2.client.registration.google.scope=email,profile
GitHub Configuration
spring.security.oauth2.client.registration.github.client-name=github
spring.security.oauth2.client.registration.github.client-id= **add your own github api client id **
spring.security.oauth2.client.registration.github.client-secret= **add also add your own github api client secret **
spring.security.oauth2.client.registration.github.scope=email,profile
Conclusion
The Smart Contact Manager is designed to provide a seamless and efficient contact management experience, combining convenience with powerful features to help you stay organized and connected. Whether for personal use or professional needs, SCM is here to make your contact management smarter and more intuitive.
Feel free to explore the features and enjoy a more organized approach to managing your contacts!