├── .github └── workflows │ ├── azure-functions-app-java.yml │ └── gradle-publish.yml ├── NewMedico ├── build │ └── classes │ │ ├── com │ │ └── manish │ │ │ └── madico │ │ │ ├── controller │ │ │ ├── Chatbox.class │ │ │ ├── Myprofile.class │ │ │ ├── Profile.class │ │ │ └── User.class │ │ │ ├── dao │ │ │ └── ServiceMedico.class │ │ │ └── entity │ │ │ └── UserEntity.class │ │ ├── mysql-connector-j-8.0.31.jar │ │ ├── servlet-api-3.0.20100224.jar │ │ └── servlet-api-3.0.20100224.jar │ │ └── taglibs-standard-impl-1.2.5.jar └── src │ └── main │ ├── java │ └── com │ │ └── manish │ │ └── madico │ │ ├── controller │ │ ├── Chatbox.java │ │ ├── Myprofile.java │ │ ├── Profile.java │ │ └── User.java │ │ ├── dao │ │ └── ServiceMedico.java │ │ ├── entity │ │ └── UserEntity.java │ │ └── filter │ │ └── MyFilter.java │ └── webapp │ ├── CreateProfile.jsp │ ├── Dashbord.jsp │ ├── Login.jsp │ ├── META-INF │ └── MANIFEST.MF │ ├── NewFile.jsp │ ├── Profile.jsp │ ├── WEB-INF │ ├── lib │ │ ├── mysql-connector-j-8.0.31.jar │ │ ├── servlet-api-3.0.20100224.jar │ │ │ └── servlet-api-3.0.20100224.jar │ │ └── taglibs-standard-impl-1.2.5.jar │ └── web.xml │ ├── chatBox.css │ ├── chatBox.js │ ├── chatBox.jsp │ ├── dist │ ├── css │ │ └── style.css │ ├── images │ │ ├── cta-illustration.svg │ │ ├── feature-icon-01.svg │ │ ├── feature-icon-02.svg │ │ ├── feature-icon-03.svg │ │ ├── feature-icon-04.svg │ │ ├── feature-icon-05.svg │ │ ├── feature-icon-06.svg │ │ ├── hero-back-illustration.svg │ │ ├── hero-top-illustration.svg │ │ ├── logo.svg │ │ └── pricing-illustration.svg │ └── js │ │ └── main.min.js │ ├── eror.jsp │ ├── index.html │ ├── package-sample.json │ ├── register.jsp │ └── src │ ├── images │ ├── Screenshot_2023-05-15-16-19-37-33_99c04817c0de5652397fc8b56c3b3817 (1).jpg │ ├── cta-illustration.svg │ ├── feature-icon-01.svg │ ├── feature-icon-02.svg │ ├── feature-icon-03.svg │ ├── feature-icon-04.svg │ ├── feature-icon-05.svg │ ├── feature-icon-06.svg │ ├── gshan.jfif │ ├── hero-back-illustration.svg │ ├── hero-top-illustration.svg │ ├── imaduddin_photo.png │ ├── logo.svg │ ├── manish.jpg │ ├── pexels-anna-nekrashevich-7214628.jpg │ ├── pexels-markus-spiske-177598.jpg │ └── pricing-illustration.svg │ ├── js │ └── main.js │ └── scss │ ├── _normalize.scss │ ├── abstracts │ ├── _functions.scss │ ├── _include-media.scss │ ├── _mixins.scss │ └── _variables.scss │ ├── base │ ├── _base.scss │ ├── _helpers.scss │ └── _typography.scss │ ├── components │ ├── _buttons.scss │ └── _forms.scss │ ├── layout │ ├── _cta.scss │ ├── _features.scss │ ├── _footer.scss │ ├── _header.scss │ ├── _hero.scss │ ├── _main.scss │ └── _pricing.scss │ └── style.scss └── README.md /.github/workflows/azure-functions-app-java.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project and deploy it to an Azure Functions App on Windows or Linux when a commit is pushed to your default branch. 2 | # 3 | # This workflow assumes you have already created the target Azure Functions app. 4 | # For instructions see https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-java 5 | # 6 | # To configure this workflow: 7 | # 1. Set up the following secrets in your repository: 8 | # - AZURE_FUNCTIONAPP_PUBLISH_PROFILE 9 | # 2. Change env variables for your configuration. 10 | # 11 | # For more information on: 12 | # - GitHub Actions for Azure: https://github.com/Azure/Actions 13 | # - Azure Functions Action: https://github.com/Azure/functions-action 14 | # - Publish Profile: https://github.com/Azure/functions-action#using-publish-profile-as-deployment-credential-recommended 15 | # - Azure Service Principal for RBAC: https://github.com/Azure/functions-action#using-azure-service-principal-for-rbac-as-deployment-credential 16 | # 17 | # For more samples to get started with GitHub Action workflows to deploy to Azure: https://github.com/Azure/actions-workflow-samples/tree/master/FunctionApp 18 | 19 | name: Deploy Java project to Azure Function App 20 | 21 | on: 22 | push: 23 | branches: ["main"] 24 | 25 | env: 26 | AZURE_FUNCTIONAPP_NAME: 'your-app-name' # set this to your function app name on Azure 27 | POM_XML_DIRECTORY: '.' # set this to the directory which contains pom.xml file 28 | JAVA_VERSION: '8' # set this to the java version to use (e.g. '8', '11', '17') 29 | 30 | jobs: 31 | build-and-deploy: 32 | runs-on: windows-latest # For Linux, use ubuntu-latest 33 | environment: dev 34 | steps: 35 | - name: 'Checkout GitHub Action' 36 | uses: actions/checkout@v3 37 | 38 | # If you want to use Azure RBAC instead of Publish Profile, then uncomment the task below 39 | # - name: 'Login via Azure CLI' 40 | # uses: azure/login@v1 41 | # with: 42 | # creds: ${{ secrets.AZURE_RBAC_CREDENTIALS }} # set up AZURE_RBAC_CREDENTIALS secrets in your repository 43 | 44 | - name: Setup Java Sdk ${{ env.JAVA_VERSION }} 45 | uses: actions/setup-java@v1 46 | with: 47 | java-version: ${{ env.JAVA_VERSION }} 48 | 49 | - name: 'Restore Project Dependencies Using Mvn' 50 | shell: pwsh # For Linux, use bash 51 | run: | 52 | pushd './${{ env.POM_XML_DIRECTORY }}' 53 | mvn clean package 54 | popd 55 | 56 | - name: 'Run Azure Functions Action' 57 | uses: Azure/functions-action@v1 58 | id: fa 59 | with: 60 | app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }} 61 | package: '${{ env.POM_XML_DIRECTORY }}' # if there are multiple function apps in same project, then this path will be like './${{ env.POM_XML_DIRECTORY }}/target/azure-functions/${{ env.POM_FUNCTIONAPP_NAME }' 62 | publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }} # Remove publish-profile to use Azure RBAC 63 | respect-pom-xml: true 64 | -------------------------------------------------------------------------------- /.github/workflows/gradle-publish.yml: -------------------------------------------------------------------------------- 1 | # This workflow uses actions that are not certified by GitHub. 2 | # They are provided by a third-party and are governed by 3 | # separate terms of service, privacy policy, and support 4 | # documentation. 5 | # This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created 6 | # For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle 7 | 8 | name: Gradle Package 9 | 10 | on: 11 | release: 12 | types: [created] 13 | 14 | jobs: 15 | build: 16 | 17 | runs-on: ubuntu-latest 18 | permissions: 19 | contents: read 20 | packages: write 21 | 22 | steps: 23 | - uses: actions/checkout@v3 24 | - name: Set up JDK 11 25 | uses: actions/setup-java@v3 26 | with: 27 | java-version: '11' 28 | distribution: 'temurin' 29 | server-id: github # Value of the distributionManagement/repository/id field of the pom.xml 30 | settings-path: ${{ github.workspace }} # location for the settings.xml file 31 | 32 | - name: Build with Gradle 33 | uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 34 | with: 35 | arguments: build 36 | 37 | # The USERNAME and TOKEN need to correspond to the credentials environment variables used in 38 | # the publishing section of your build.gradle 39 | - name: Publish to GitHub Packages 40 | uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 41 | with: 42 | arguments: publish 43 | env: 44 | USERNAME: ${{ github.actor }} 45 | TOKEN: ${{ secrets.GITHUB_TOKEN }} 46 | -------------------------------------------------------------------------------- /NewMedico/build/classes/com/manish/madico/controller/Chatbox.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/com/manish/madico/controller/Chatbox.class -------------------------------------------------------------------------------- /NewMedico/build/classes/com/manish/madico/controller/Myprofile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/com/manish/madico/controller/Myprofile.class -------------------------------------------------------------------------------- /NewMedico/build/classes/com/manish/madico/controller/Profile.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/com/manish/madico/controller/Profile.class -------------------------------------------------------------------------------- /NewMedico/build/classes/com/manish/madico/controller/User.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/com/manish/madico/controller/User.class -------------------------------------------------------------------------------- /NewMedico/build/classes/com/manish/madico/dao/ServiceMedico.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/com/manish/madico/dao/ServiceMedico.class -------------------------------------------------------------------------------- /NewMedico/build/classes/com/manish/madico/entity/UserEntity.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/com/manish/madico/entity/UserEntity.class -------------------------------------------------------------------------------- /NewMedico/build/classes/mysql-connector-j-8.0.31.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/mysql-connector-j-8.0.31.jar -------------------------------------------------------------------------------- /NewMedico/build/classes/servlet-api-3.0.20100224.jar/servlet-api-3.0.20100224.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/servlet-api-3.0.20100224.jar/servlet-api-3.0.20100224.jar -------------------------------------------------------------------------------- /NewMedico/build/classes/taglibs-standard-impl-1.2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/build/classes/taglibs-standard-impl-1.2.5.jar -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/controller/Chatbox.java: -------------------------------------------------------------------------------- 1 | package com.manish.madico.controller; 2 | 3 | import java.io.IOException; 4 | import javax.servlet.RequestDispatcher; 5 | import javax.servlet.ServletException; 6 | import javax.servlet.annotation.WebServlet; 7 | import javax.servlet.http.HttpServlet; 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | import javax.servlet.http.HttpSession; 11 | 12 | @SuppressWarnings("serial") 13 | @WebServlet("/chat") 14 | public class Chatbox extends HttpServlet { 15 | @Override 16 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 17 | String[] history = null; 18 | String parameter = req.getParameter("message"); 19 | System.out.println(parameter); 20 | String[] problam = { "Sardi-Jukham (Common cold)", "Sardi-Jukham", "(Common cold)" }; 21 | String[] chat = { "HII", "HELLO", "HELP", "HOW ARE YOU", "HEY", "HOW ARE YOU" }; 22 | HttpSession session = req.getSession(); 23 | session.setAttribute("history", history); 24 | 25 | if (parameter != null) { 26 | String message = parameter.toUpperCase(); 27 | for (int i = 0; i < chat.length; i++) { 28 | 29 | if (message.toUpperCase().equals(chat[i].toUpperCase())) { 30 | String res = "Hello! how can i help you ,ask me question only medical/hospital releted question Bukhar (Fever)\r\n" 31 | + "Sardi-Jukham (Common cold)\r\n" + "Malaria\r\n" + "Typhoid (Typhoid fever)\r\n" 32 | + "Pait ki bimariya (Stomach ailments)\r\n" + "Skin infections (Twacha ke sankraman)\r\n" 33 | + "Khansi (Cough)\r\n" + "Pet ki khrabi (Indigestion)\r\n" + "Dast (Diarrhea)\r\n" 34 | + "Headache (Sar dard)"; 35 | req.setAttribute("responce", res); 36 | req.setAttribute("usermassage", parameter); 37 | } 38 | } 39 | for (int j = 0; j < problam.length; j++) { 40 | if (message.toUpperCase().equals(problam[j].toUpperCase())) { 41 | String res = "Here are some common medications that are often used to treat common illnesses like fever, cold, malaria, typhoid, stomach ailments, skin infections, cough, indigestion, diarrhea, and headache:\r\n" 42 | + "\r\n" 43 | + "Paracetamol - It is used to treat common ailments such as fever, headache, and cold.\r\n" 44 | + "\r\n" + "Cetirizine - It is used to treat cold and flu symptoms.\r\n" + "\r\n" 45 | + "Chloroquine - It is used to treat malaria.\r\n" + "\r\n" 46 | + "Azithromycin - It is used to treat typhoid fever, cough, and skin infections.\r\n" 47 | + "\r\n" + "Antacids - They are used to treat indigestion and diarrhea.\r\n" + "\r\n" 48 | + "These medications are provided as general information only, and it is essential to consult a doctor or pharmacist before taking any medication."; 49 | req.setAttribute("responce", res); 50 | req.setAttribute("usermassage", parameter); 51 | }/* }else { 52 | String res="work in progress"; 53 | 54 | req.setAttribute("responce", res); 55 | req.setAttribute("usermassage", parameter); 56 | }*/ 57 | 58 | } 59 | 60 | RequestDispatcher dispatcher = req.getRequestDispatcher("NewFile.jsp"); 61 | dispatcher.forward(req, resp); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/controller/Myprofile.java: -------------------------------------------------------------------------------- 1 | package com.manish.madico.controller; 2 | 3 | import java.io.IOException; 4 | import java.sql.SQLException; 5 | import java.util.Iterator; 6 | import java.util.List; 7 | 8 | import javax.servlet.RequestDispatcher; 9 | import javax.servlet.ServletException; 10 | import javax.servlet.annotation.WebServlet; 11 | import javax.servlet.http.HttpServlet; 12 | import javax.servlet.http.HttpServletRequest; 13 | import javax.servlet.http.HttpServletResponse; 14 | 15 | import com.manish.madico.dao.ServiceMedico; 16 | import com.manish.madico.entity.UserEntity; 17 | 18 | @WebServlet("/myprofile") 19 | public class Myprofile extends HttpServlet { 20 | /** 21 | * 22 | */ 23 | private static final long serialVersionUID = 1L; 24 | 25 | @Override 26 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 27 | 28 | String name = req.getParameter("uname"); 29 | System.out.println(name + "sts"); 30 | try { 31 | List getdata = ServiceMedico.getdata(); 32 | for (Iterator iterator = getdata.iterator(); iterator.hasNext();) { 33 | 34 | UserEntity userEntity = (UserEntity) iterator.next(); 35 | if (userEntity.getUsername().equals(name)) { 36 | req.setAttribute("userdetails", userEntity); 37 | System.out.println(userEntity); 38 | } 39 | 40 | } 41 | 42 | RequestDispatcher dispatcher = req.getRequestDispatcher("/Profile.jsp"); 43 | dispatcher.forward(req, resp); 44 | } catch (SQLException e) { 45 | // TODO Auto-generated catch block 46 | e.printStackTrace(); 47 | } 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/controller/Profile.java: -------------------------------------------------------------------------------- 1 | package com.manish.madico.controller; 2 | 3 | import java.io.FileOutputStream; 4 | import java.io.IOException; 5 | import java.io.InputStream; 6 | import java.sql.SQLException; 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import javax.servlet.RequestDispatcher; 11 | import javax.servlet.ServletException; 12 | import javax.servlet.annotation.MultipartConfig; 13 | import javax.servlet.annotation.WebServlet; 14 | import javax.servlet.http.HttpServlet; 15 | import javax.servlet.http.HttpServletRequest; 16 | import javax.servlet.http.HttpServletResponse; 17 | import javax.servlet.http.Part; 18 | 19 | import com.manish.madico.dao.ServiceMedico; 20 | import com.manish.madico.entity.UserEntity; 21 | 22 | @WebServlet("/profile") 23 | @MultipartConfig 24 | public class Profile extends HttpServlet { 25 | private static final long serialVersionUID = 1L; 26 | 27 | @Override 28 | protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 29 | String action = req.getParameter("profile"); 30 | String name = req.getParameter("userid"); 31 | boolean pr = false; 32 | System.out.println(name+"manish name"); 33 | 34 | Part part = req.getPart("image"); 35 | String fileName = part.getSubmittedFileName(); 36 | System.out.println(fileName); 37 | String path = ("D:\\sts\\NewMedico\\src\\main\\webapp\\src\\images\\" + fileName); 38 | InputStream inStream = part.getInputStream(); 39 | 40 | try { 41 | pr = ServiceMedico.profile(fileName, req, name); 42 | byte[] byt = new byte[inStream.available()]; 43 | inStream.read(byt); 44 | FileOutputStream fos = new FileOutputStream(path); 45 | fos.write(byt); 46 | fos.close(); 47 | if (pr == true) { 48 | try { 49 | List getdata = ServiceMedico.getdata(); 50 | System.out.println(getdata); 51 | req.setAttribute("userdata", getdata); 52 | req.setAttribute("profilename", fileName); 53 | req.setAttribute("username", name); 54 | System.out.println(name+"for profile"); 55 | String attribute =(String) req.getAttribute("profilename"); 56 | System.out.println(attribute); 57 | 58 | RequestDispatcher dispatcher = req.getRequestDispatcher("Dashbord.jsp"); 59 | dispatcher.forward(req, resp); 60 | 61 | } catch (Exception e) { 62 | System.out.println(e); 63 | 64 | } 65 | } 66 | } catch (Exception e) { 67 | e.printStackTrace(); 68 | } 69 | 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/controller/User.java: -------------------------------------------------------------------------------- 1 | package com.manish.madico.controller; 2 | 3 | import java.io.IOException; 4 | import java.sql.Connection; 5 | import java.sql.DriverManager; 6 | import java.sql.SQLException; 7 | import java.util.List; 8 | 9 | import javax.servlet.RequestDispatcher; 10 | import javax.servlet.ServletConfig; 11 | import javax.servlet.ServletContext; 12 | import javax.servlet.ServletException; 13 | import javax.servlet.annotation.WebInitParam; 14 | import javax.servlet.annotation.WebServlet; 15 | import javax.servlet.http.HttpServlet; 16 | import javax.servlet.http.HttpServletRequest; 17 | import javax.servlet.http.HttpServletResponse; 18 | import javax.servlet.http.HttpSession; 19 | 20 | import com.manish.madico.dao.ServiceMedico; 21 | import com.manish.madico.entity.UserEntity; 22 | 23 | @WebServlet(urlPatterns = "/User", initParams = { 24 | @WebInitParam(name = "dbUrl", value = "jdbc:mysql://localhost:3306/audi"), 25 | @WebInitParam(name = "dbUser", value = "root"), @WebInitParam(name = "dbPassword", value = "MANISH80") }) 26 | public class User extends HttpServlet { 27 | private static Connection connection; 28 | static public UserEntity bean; 29 | 30 | @SuppressWarnings("unused") 31 | public void init(ServletConfig config) { 32 | ServletContext context = config.getServletContext(); 33 | /* System.out.println(context); */ 34 | try { 35 | Class forName = Class.forName("com.mysql.cj.jdbc.Driver"); 36 | connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/audi", "root", "MANISH80"); 37 | } catch (SQLException | ClassNotFoundException e) { 38 | e.printStackTrace(); 39 | }finally{ 40 | connection.close(); 41 | } 42 | /* 43 | * System.out.println(forName); 44 | * System.out.println(context.getInitParameter("dbUrl")); 45 | * System.out.println(context.getInitParameter("dbUser")); 46 | * System.out.println(context.getInitParameter("dbPassword")); 47 | * context.getInitParameter("dbUrl"), context.getInitParameter("dbUser"), 48 | * context.getInitParameter("dbPassword") 49 | */ 50 | 51 | } 52 | 53 | private static final long serialVersionUID = 1L; 54 | 55 | public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 56 | UserEntity bean = new UserEntity(); 57 | String action = req.getParameter("typeofuseraction"); 58 | /* System.out.println(action); */ 59 | 60 | if (action.equals("Login")) { 61 | 62 | bean.setUsername(req.getParameter("username")); 63 | bean.setPassword(req.getParameter("password")); 64 | try { 65 | req.setAttribute("username", req.getParameter("username")); 66 | System.out.println(User.connection); 67 | boolean login = ServiceMedico.login(bean, User.connection,req); 68 | /* System.out.println(login); */ 69 | if (login==true) { 70 | List getdata = ServiceMedico.getdata(); 71 | System.out.println(getdata); 72 | 73 | req.setAttribute("userdata", getdata); 74 | //System.out.println("helo0"); 75 | RequestDispatcher dispatcher = req.getRequestDispatcher("Dashbord.jsp"); 76 | dispatcher.forward(req, resp); 77 | } 78 | else { 79 | RequestDispatcher dispatcher = req.getRequestDispatcher("Login.jsp"); 80 | dispatcher.forward(req, resp); 81 | } 82 | } catch (SQLException e) { 83 | e.printStackTrace(); 84 | } 85 | 86 | } else if (action.equals("register")) { 87 | try { 88 | bean.setProfiletype(req.getParameter("type")); 89 | bean.setPassword(req.getParameter("password")); 90 | bean.setEmail(req.getParameter("email")); 91 | bean.setPhone(req.getParameter("phone")); 92 | bean.setName(req.getParameter("name")); 93 | boolean register = ServiceMedico.register(bean, User.connection); 94 | 95 | // creating http session object 96 | HttpSession session = req.getSession(); 97 | session.setAttribute("uname", req.getParameter("name")); 98 | 99 | if (register == true) { 100 | RequestDispatcher dispatcher = req.getRequestDispatcher("/CreateProfile.jsp"); 101 | dispatcher.forward(req, resp); 102 | } 103 | } catch (SQLException e) { 104 | e.printStackTrace(); 105 | } 106 | 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/dao/ServiceMedico.java: -------------------------------------------------------------------------------- 1 | package com.manish.madico.dao; 2 | 3 | import java.sql.Connection; 4 | import java.sql.PreparedStatement; 5 | import java.sql.ResultSet; 6 | import java.sql.SQLException; 7 | import java.sql.Statement; 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | import javax.servlet.http.Cookie; 12 | import javax.servlet.http.HttpServletRequest; 13 | import javax.servlet.http.HttpSession; 14 | 15 | import com.manish.madico.controller.User; 16 | import com.manish.madico.entity.UserEntity; 17 | 18 | public class ServiceMedico { 19 | private static Connection con; 20 | 21 | public static boolean login(UserEntity bean, Connection connection, HttpServletRequest req) throws SQLException { 22 | Statement statement = connection.createStatement(); 23 | ResultSet rs1 = statement.executeQuery("select * from NEWMEDICO where username='"+bean.getUsername()+"'"); 24 | System.out.println(bean.getUsername()); 25 | System.out.println(bean.getImage_name()); 26 | while (rs1.next()) { 27 | String Username1 = rs1.getString(2); 28 | String image = rs1.getString(8); 29 | if (Username1.equals(bean.getUsername()) ) { 30 | System.out.println(Username1); 31 | System.out.println("++++++++++++++++++++++++++++++"); 32 | System.out.println(image); 33 | req.setAttribute("profilename", image); 34 | }} 35 | 36 | boolean returntype = false; 37 | ResultSet rs = statement.executeQuery("select * from NEWMEDICO"); 38 | System.out.println(bean.getUsername()); 39 | System.out.println(bean.getPassword()); 40 | while (rs.next()) { 41 | 42 | String Username = rs.getString(2); 43 | String password = rs.getString(6); 44 | if (Username.equals(bean.getUsername()) && password.equals(bean.getPassword())) { 45 | returntype = true; 46 | System.out.println(Username); 47 | System.out.println(password); 48 | } 49 | con = connection; 50 | } 51 | System.out.println(returntype + "heiiiiii"); 52 | return returntype; 53 | 54 | } 55 | 56 | public static boolean register(UserEntity bean, Connection connection) throws SQLException { 57 | System.out.println("hello register"); 58 | PreparedStatement statement = connection.prepareStatement( 59 | "insert into newmedico(username,name,phone,email,password,profiletype,imagename) values(?,?,?,?,?,?,?)"); 60 | /* 61 | * System.out.println(bean.getUsername()); System.out.println(bean.getName()); 62 | * System.out.println(bean.getPhone()); System.out.println(bean.getEmail()); 63 | * System.out.println(bean.getPassword()); 64 | */ 65 | boolean retuntype = false; 66 | statement.setString(1, bean.getUsername()); 67 | statement.setString(2, bean.getName()); 68 | statement.setString(3, bean.getPhone()); 69 | statement.setString(4, bean.getEmail()); 70 | statement.setString(5, bean.getPassword()); 71 | statement.setString(6, bean.getProfiletype()); 72 | statement.setString(7, bean.getImage_name()); 73 | int executeQuery = statement.executeUpdate(); 74 | System.out.println(executeQuery); 75 | if (executeQuery <= 1) { 76 | retuntype = true; 77 | } 78 | con = connection; 79 | return retuntype; 80 | 81 | } 82 | 83 | static public boolean profile(String imagename, HttpServletRequest req, String name) throws SQLException { 84 | System.out.println(con); 85 | String value = null; 86 | HttpSession session = req.getSession(false); 87 | value = (String) session.getAttribute("uname"); 88 | 89 | System.out.println(value); 90 | System.out.println(name); 91 | System.out.println(imagename); 92 | Boolean type = false; 93 | PreparedStatement statement = con.prepareStatement("UPDATE newmedico SET username=?, imagename=? WHERE name=?"); 94 | 95 | statement.setString(1, name); 96 | statement.setString(2, imagename); 97 | statement.setString(3, value); 98 | int i = statement.executeUpdate(); 99 | System.out.println(i); 100 | if (i <= 1) { 101 | type = true; 102 | } 103 | return type; 104 | 105 | } 106 | 107 | static public List getdata() throws SQLException { 108 | System.out.println(con); 109 | List list = new ArrayList<>(); 110 | Statement statement = con.createStatement(); 111 | ResultSet rs = statement.executeQuery("select * from NEWMEDICO"); 112 | while (rs.next()) { 113 | UserEntity entity = new UserEntity(); 114 | entity.setUsername(rs.getString(2)); 115 | entity.setName(rs.getString(3)); 116 | entity.setPhone(rs.getString(4)); 117 | entity.setEmail(rs.getString(5)); 118 | entity.setProfiletype(rs.getString(7)); 119 | entity.setImage_name(rs.getString(8)); 120 | list.add(entity); 121 | } 122 | return list; 123 | 124 | } 125 | 126 | } 127 | -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/entity/UserEntity.java: -------------------------------------------------------------------------------- 1 | package com.manish.madico.entity; 2 | 3 | import java.util.Objects; 4 | 5 | public class UserEntity { 6 | private String name; 7 | private String username; 8 | private String phone; 9 | private String email; 10 | private String password; 11 | private String profiletype; 12 | 13 | public UserEntity(String name, String username, String phone, String email, String password, String profiletype, 14 | String image_name) { 15 | super(); 16 | this.name = name; 17 | this.username = username; 18 | this.phone = phone; 19 | this.email = email; 20 | this.password = password; 21 | this.profiletype = profiletype; 22 | this.image_name = image_name; 23 | } 24 | 25 | public String getProfiletype() { 26 | return profiletype; 27 | } 28 | 29 | public void setProfiletype(String profiletype) { 30 | this.profiletype = profiletype; 31 | } 32 | 33 | private String image_name; 34 | 35 | public String getName() { 36 | return name; 37 | } 38 | 39 | public void setName(String name) { 40 | this.name = name; 41 | } 42 | 43 | public String getUsername() { 44 | return username; 45 | } 46 | 47 | public void setUsername(String username) { 48 | this.username = username; 49 | } 50 | 51 | public String getPhone() { 52 | return phone; 53 | } 54 | 55 | public void setPhone(String phone) { 56 | this.phone = phone; 57 | } 58 | 59 | public String getEmail() { 60 | return email; 61 | } 62 | 63 | public void setEmail(String email) { 64 | this.email = email; 65 | } 66 | 67 | public String getPassword() { 68 | return password; 69 | } 70 | 71 | public void setPassword(String password) { 72 | this.password = password; 73 | } 74 | 75 | public String getImage_name() { 76 | return image_name; 77 | } 78 | 79 | public void setImage_name(String image_name) { 80 | this.image_name = image_name; 81 | } 82 | 83 | @Override 84 | public String toString() { 85 | return "UserEntity [name=" + name + ", username=" + username + ", phone=" + phone + ", email=" + email 86 | + ", password=" + password + ", image_name=" + image_name + "]"; 87 | } 88 | 89 | public UserEntity() { 90 | super(); 91 | // TODO Auto-generated constructor stub 92 | } 93 | 94 | @Override 95 | public int hashCode() { 96 | return Objects.hash(email, image_name, name, password, phone, username); 97 | } 98 | 99 | @Override 100 | public boolean equals(Object obj) { 101 | if (this == obj) 102 | return true; 103 | if (obj == null) 104 | return false; 105 | if (getClass() != obj.getClass()) 106 | return false; 107 | UserEntity other = (UserEntity) obj; 108 | return Objects.equals(email, other.email) && Objects.equals(image_name, other.image_name) 109 | && Objects.equals(name, other.name) && Objects.equals(password, other.password) && phone == other.phone 110 | && Objects.equals(username, other.username); 111 | } 112 | 113 | } 114 | -------------------------------------------------------------------------------- /NewMedico/src/main/java/com/manish/madico/filter/MyFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * package com.manish.madico.filter; 3 | * 4 | * import java.io.IOException; import java.io.PrintWriter; 5 | * 6 | * import javax.servlet.Filter; import javax.servlet.FilterChain; import 7 | * javax.servlet.ServletException; import javax.servlet.ServletRequest; import 8 | * javax.servlet.ServletResponse; 9 | * 10 | * public class MyFilter implements Filter { 11 | * 12 | * @Override public void doFilter(ServletRequest request, ServletResponse 13 | * response, FilterChain chain) throws IOException, ServletException { 14 | * response.setContentType("text/html"); PrintWriter out = response.getWriter(); 15 | * String uname = request.getParameter("name"); if (uname.startsWith("d")) { 16 | * out.println("Hello" + uname); } else { 17 | * out.println("name will start only with K"); } } 18 | * 19 | * } 20 | */ -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/CreateProfile.jsp: -------------------------------------------------------------------------------- 1 | <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 2 | <%@ page language="java" contentType="text/html; charset=UTF-8" 3 | pageEncoding="UTF-8"%> 4 | <%@page import="javax.servlet.*"%> 5 | 6 | 7 | 8 | 9 | Create profile 10 | 13 | 17 | 19 | 21 | 22 | 24 | 29 | 30 | 31 |
32 | 33 | <% 34 | String n; 35 | HttpSession sess = request.getSession(false); 36 | n = (String) sess.getAttribute("uname"); 37 | %> 38 |
39 |
40 |

41 | CREATE YOUR ID 42 | <%=n.toUpperCase()%>

43 |
44 |
45 | example placeholder 48 | 59 |
60 | 61 |
62 |
63 | 67 |
68 |
69 |
70 |
71 |
72 |
73 | 74 | 75 |
76 | 78 |
79 |
80 | 82 |
83 |
84 |
85 | 86 |
87 |
88 |
89 | 90 | 91 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/Dashbord.jsp: -------------------------------------------------------------------------------- 1 | <%@page import="org.apache.jasper.tagplugins.jstl.core.If"%> 2 | <%@page import="org.eclipse.jdt.internal.compiler.ast.IfStatement"%> 3 | <%@page import="java.util.List"%> 4 | <%@page import="com.manish.madico.entity.UserEntity"%> 5 | <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 6 | pageEncoding="ISO-8859-1"%> 7 | 8 | 9 | 10 | 11 | 12 | 13 | NewMedico 14 | 17 | 21 | 25 | 29 | 32 | 33 | 34 | 36 | 39 | 219 | 220 | 221 | <% 222 | String image = (String) request.getAttribute("profilename"); 223 | String name = (String) request.getAttribute("username"); 224 | System.out.print(name); 225 | %> 226 | 290 | 291 | 292 |
293 |
294 | 296 | 297 | 298 |
299 |
301 |
302 |
304 |
305 |
306 |
307 |
309 |
311 |
313 |
314 | 315 | <%-- <% 316 | String photoname = (String) request.getAttribute("imagename"); 317 | %> 318 | <% 319 | System.out.print("----" + photoname); 320 | %> --%> 321 | 322 | <% 323 | List attribute = (List) request.getAttribute("userdata"); 324 | %> 325 |
326 |
327 | <% 328 | for (UserEntity e : attribute) { 329 | %> 330 |
331 |
332 | image not found 333 |
334 |
335 |

<%=e.getUsername()%>

336 |

<%=e.getProfiletype()%>

337 |
338 |
339 |
340 |

100M

341 |

Followers

342 |
343 |
344 |

100

345 |

Following

346 |
347 |
348 |
349 | 350 | 351 |
352 | 353 |
354 | <% 355 | if(e.getImage_name().equals(null)&&e.getUsername().equals(null)){ 356 | break; 357 | } 358 | } 359 | %> 360 |
361 |
362 | 363 |
364 | 365 | 366 | 367 |
368 | 414 |
415 | 416 | 417 | 418 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/Login.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 | pageEncoding="ISO-8859-1"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | NewMedico 10 | 13 | 14 | 15 | 17 | 18 | 19 |
20 | 33 | 34 |
35 |
36 |
37 |
38 |
39 |
40 | 41 |
42 |
43 | 45 |
46 |
47 | 48 |
49 |
50 | 52 | 53 | 54 |
56 |
58 |
60 |
62 |
63 |
64 |
65 |
67 |
69 |
71 |
72 |
73 |
74 | 75 | 76 | 77 | 78 | 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/NewFile.jsp: -------------------------------------------------------------------------------- 1 | <%@page import="com.manish.madico.controller.Chatbox"%> 2 | <%@page import="java.util.List"%> 3 | <%@page import="com.manish.madico.entity.UserEntity"%> 4 | <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 5 | pageEncoding="ISO-8859-1"%> 6 | 7 | 8 | 9 | 10 | 11 | 12 | 82 | 83 | Insert title here 84 | 85 | 86 |
87 |
88 |
89 |
90 | <% 91 | HttpSession session2 = request.getSession(); 92 | Chatbox attribute =(Chatbox) session2.getAttribute("history"); %> 93 |

User : ${usermassage}

94 | 95 |
96 |
97 |

Bot : ${responce}

98 |
99 |
100 |
101 | 102 | 103 |
104 |
105 |
106 | 107 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/WEB-INF/lib/mysql-connector-j-8.0.31.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/WEB-INF/lib/mysql-connector-j-8.0.31.jar -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/WEB-INF/lib/servlet-api-3.0.20100224.jar/servlet-api-3.0.20100224.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/WEB-INF/lib/servlet-api-3.0.20100224.jar/servlet-api-3.0.20100224.jar -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/WEB-INF/lib/taglibs-standard-impl-1.2.5.jar -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | NewMedico 4 | 5 | index.html 6 | index.jsp 7 | index.htm 8 | default.html 9 | default.jsp 10 | default.htm 11 | 12 | 13 | 21 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/chatBox.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); 2 | 3 | /* Box sizing rules */ 4 | *, 5 | *::before, 6 | *::after { 7 | box-sizing: border-box; 8 | } 9 | 10 | /* Remove default margin */ 11 | body, 12 | h1, 13 | h2, 14 | h3, 15 | h4, 16 | p, 17 | figure, 18 | blockquote, 19 | dl, 20 | dd { 21 | margin: 0; 22 | } 23 | 24 | /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ 25 | ul[role='list'], 26 | ol[role='list'] { 27 | list-style: none; 28 | } 29 | 30 | /* Set core root defaults */ 31 | html:focus-within { 32 | scroll-behavior: smooth; 33 | } 34 | 35 | /* Set core body defaults */ 36 | body { 37 | min-height: 100vh; 38 | text-rendering: optimizeSpeed; 39 | line-height: 1.5; 40 | font-family: 'Poppins', sans-serif; 41 | background: linear-gradient(90deg, var(--grey) 31px, transparent 1px) 50%, linear-gradient(180deg, var(--grey) 31px, var(--blue) 1px) 50%; 42 | background-size: 32px 32px; 43 | color: var(--dark); 44 | } 45 | 46 | /* A elements that don't have a class get default styles */ 47 | a:not([class]) { 48 | text-decoration-skip-ink: auto; 49 | } 50 | 51 | /* Make images easier to work with */ 52 | img, 53 | picture { 54 | max-width: 100%; 55 | display: block; 56 | } 57 | 58 | /* Inherit fonts for inputs and buttons */ 59 | input, 60 | button, 61 | textarea, 62 | select { 63 | font: inherit; 64 | } 65 | 66 | /* Remove all animations, transitions and smooth scroll for people that prefer not to see them */ 67 | @media (prefers-reduced-motion: reduce) { 68 | html:focus-within { 69 | scroll-behavior: auto; 70 | } 71 | 72 | *, 73 | *::before, 74 | *::after { 75 | animation-duration: 0.01ms !important; 76 | animation-iteration-count: 1 !important; 77 | transition-duration: 0.01ms !important; 78 | scroll-behavior: auto !important; 79 | } 80 | } 81 | 82 | /* GLOBAL STYLES */ 83 | :root { 84 | --blue: #335DFF; 85 | --grey: #F5F5F5; 86 | --grey-d-1: #EEE; 87 | --grey-d-2: #DDD; 88 | --grey-d-3: #888; 89 | --white: #FFF; 90 | --dark: #222; 91 | } 92 | /* GLOBAL STYLES */ 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | /* CHATBOX */ 101 | .chatbox-wrapper { 102 | position: fixed; 103 | bottom: 2rem; 104 | right: 2rem; 105 | width: 4rem; 106 | height: 4rem; 107 | } 108 | .chatbox-toggle { 109 | width: 100%; 110 | height: 100%; 111 | background: var(--blue); 112 | color: var(--white); 113 | font-size: 2rem; 114 | display: flex; 115 | justify-content: center; 116 | align-items: center; 117 | border-radius: 50%; 118 | cursor: pointer; 119 | transition: .2s; 120 | } 121 | .chatbox-toggle:active { 122 | transform: scale(.9); 123 | } 124 | .chatbox-message-wrapper { 125 | position: absolute; 126 | bottom: calc(100% + 1rem); 127 | right: 0; 128 | width: 420px; 129 | border-radius: .5rem; 130 | overflow: hidden; 131 | box-shadow: .5rem .5rem 2rem rgba(0, 0, 0, .1); 132 | transform: scale(0); 133 | transform-origin: bottom right; 134 | transition: .2s; 135 | } 136 | .chatbox-message-wrapper.show { 137 | transform: scale(1); 138 | } 139 | .chatbox-message-header { 140 | display: flex; 141 | align-items: center; 142 | justify-content: space-between; 143 | background: var(--white); 144 | padding: .75rem 1.5rem; 145 | } 146 | .chatbox-message-profile { 147 | display: flex; 148 | align-items: center; 149 | grid-gap: .5rem; 150 | } 151 | .chatbox-message-image { 152 | width: 3rem; 153 | height: 3rem; 154 | object-fit: cover; 155 | border-radius: 50%; 156 | } 157 | .chatbox-message-name { 158 | font-size: 1.125rem; 159 | font-weight: 600; 160 | } 161 | .chatbox-message-status { 162 | font-size: .875rem; 163 | color: var(--grey-d-3); 164 | } 165 | .chatbox-message-dropdown { 166 | position: relative; 167 | } 168 | .chatbox-message-dropdown-toggle { 169 | display: flex; 170 | justify-content: center; 171 | align-items: center; 172 | width: 2.5rem; 173 | height: 2.5rem; 174 | font-size: 1.25rem; 175 | cursor: pointer; 176 | border-radius: 50%; 177 | } 178 | .chatbox-message-dropdown-toggle:hover { 179 | background: var(--grey); 180 | } 181 | .chatbox-message-dropdown-menu { 182 | list-style: none; 183 | margin: 0; 184 | position: absolute; 185 | top: 100%; 186 | right: 0; 187 | background: var(--white); 188 | padding: .5rem 0; 189 | width: 120px; 190 | box-shadow: .25rem .25rem 1.5rem rgba(0, 0, 0, .1); 191 | transform: scale(0); 192 | transform-origin: top right; 193 | transition: .2s; 194 | border-radius: .5rem; 195 | } 196 | .chatbox-message-dropdown-menu.show { 197 | transform: scale(1); 198 | } 199 | .chatbox-message-dropdown-menu a { 200 | font-size: .875rem; 201 | font-weight: 500; 202 | color: var(--dark); 203 | text-decoration: none; 204 | padding: .5rem 1rem; 205 | display: block; 206 | } 207 | .chatbox-message-dropdown-menu a:hover { 208 | background: var(--grey); 209 | } 210 | .chatbox-message-content { 211 | background: var(--grey); 212 | padding: 1.5rem; 213 | display: flex; 214 | flex-direction: column; 215 | grid-row-gap: 1rem; 216 | max-height: 300px; 217 | overflow-y: auto; 218 | } 219 | .chatbox-message-item { 220 | width: 90%; 221 | padding: 1rem; 222 | } 223 | .chatbox-message-item.sent { 224 | align-self: flex-end; 225 | background: var(--blue); 226 | color: var(--white); 227 | border-radius: .75rem 0 .75rem .75rem; 228 | } 229 | .chatbox-message-item.received { 230 | background: var(--white); 231 | border-radius: 0 .75rem .75rem .75rem; 232 | box-shadow: .25rem .25rem 1.5rem rgba(0, 0, 0, .05); 233 | } 234 | .chatbox-message-item-time { 235 | float: right; 236 | font-size: .75rem; 237 | margin-top: .5rem; 238 | display: inline-block; 239 | } 240 | .chatbox-message-bottom { 241 | background: var(--white); 242 | padding: .75rem 1.5rem; 243 | } 244 | .chatbox-message-form { 245 | display: flex; 246 | align-items: center; 247 | background: var(--grey); 248 | border-radius: .5rem; 249 | padding: .5rem 1.25rem; 250 | } 251 | .chatbox-message-input { 252 | background: transparent; 253 | outline: none; 254 | border: none; 255 | resize: none; 256 | scrollbar-width: none; 257 | } 258 | .chatbox-message-input::-webkit-scrollbar { 259 | display: none; 260 | } 261 | .chatbox-message-submit { 262 | font-size: 1.25rem; 263 | color: var(--blue); 264 | background: transparent; 265 | border: none; 266 | outline: none; 267 | cursor: pointer; 268 | } 269 | .chatbox-message-no-message { 270 | font-size: 1rem; 271 | font-weight: 600; 272 | text-align: center; 273 | } 274 | /* CHATBOX */ 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | /* BREAKPOINTS */ 283 | @media screen and (max-width: 576px) { 284 | .chatbox-message-wrapper { 285 | width: calc(100vw - 2rem); 286 | } 287 | .chatbox-wrapper { 288 | bottom: 1rem; 289 | right: 1rem; 290 | } 291 | } 292 | /* BREAKPOINTS */ -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/chatBox.js: -------------------------------------------------------------------------------- 1 | // MESSAGE INPUT 2 | const textarea = document.querySelector('.chatbox-message-input') 3 | const chatboxForm = document.querySelector('.chatbox-message-form') 4 | let userMes = 'hi'; 5 | 6 | textarea.addEventListener('input', function () { 7 | let line = textarea.value.split('\n').length 8 | 9 | if(textarea.rows < 6 || line < 6) { 10 | textarea.rows = line 11 | } 12 | 13 | if(textarea.rows > 1) { 14 | chatboxForm.style.alignItems = 'flex-end' 15 | } else { 16 | chatboxForm.style.alignItems = 'center' 17 | } 18 | }) 19 | 20 | 21 | 22 | // TOGGLE CHATBOX 23 | const chatboxToggle = document.querySelector('.chatbox-toggle') 24 | const chatboxMessage = document.querySelector('.chatbox-message-wrapper') 25 | 26 | chatboxToggle.addEventListener('click', function () { 27 | chatboxMessage.classList.toggle('show') 28 | }) 29 | 30 | 31 | 32 | // DROPDOWN TOGGLE 33 | const dropdownToggle = document.querySelector('.chatbox-message-dropdown-toggle') 34 | const dropdownMenu = document.querySelector('.chatbox-message-dropdown-menu') 35 | 36 | dropdownToggle.addEventListener('click', function () { 37 | dropdownMenu.classList.toggle('show') 38 | }) 39 | 40 | document.addEventListener('click', function (e) { 41 | if(!e.target.matches('.chatbox-message-dropdown, .chatbox-message-dropdown *')) { 42 | dropdownMenu.classList.remove('show') 43 | } 44 | }) 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | // CHATBOX MESSAGE 53 | const chatboxMessageWrapper = document.querySelector('.chatbox-message-content') 54 | const chatboxNoMessage = document.querySelector('.chatbox-message-no-message') 55 | 56 | chatboxForm.addEventListener('submit', function (e) { 57 | e.preventDefault() 58 | 59 | if(isValid(textarea.value)) { 60 | userMes = textarea.value.trim().toLowerCase(); 61 | writeMessage() 62 | setTimeout(autoReply, 1000) 63 | } 64 | }) 65 | 66 | 67 | 68 | function addZero(num) { 69 | return num < 10 ? '0'+num : num 70 | } 71 | 72 | function writeMessage() { 73 | const today = new Date(); 74 | let message = ` 75 |
76 | 77 | ${textarea.value.trim().replace(/\n/g, '
\n')} 78 |
79 | ${addZero(today.getHours())}:${addZero(today.getMinutes())} 80 |
81 | ` 82 | chatboxMessageWrapper.insertAdjacentHTML('beforeend', message) 83 | chatboxForm.style.alignItems = 'center' 84 | textarea.rows = 1 85 | textarea.focus() 86 | textarea.value = '' 87 | chatboxNoMessage.style.display = 'none' 88 | scrollBottom() 89 | } 90 | 91 | function autoReply() { 92 | const today = new Date(); 93 | let defaultMessage = 'Thanks for your support'; 94 | 95 | if(userMes == 'manish'){ 96 | defaultMessage = 'Hello Manish you are welcome'; 97 | }else if(userMes == 'ammar'){ 98 | defaultMessage = 'Hello Ammar you are not welcome'; 99 | } 100 | 101 | let message = ` 102 |
103 | 104 | ${defaultMessage} 105 | 106 | ${addZero(today.getHours())}:${addZero(today.getMinutes())} 107 |
108 | `; 109 | chatboxMessageWrapper.insertAdjacentHTML('beforeend', message) 110 | scrollBottom() 111 | } 112 | 113 | function scrollBottom() { 114 | chatboxMessageWrapper.scrollTo(0, chatboxMessageWrapper.scrollHeight) 115 | } 116 | 117 | function isValid(value) { 118 | let text = value.replace(/\n/g, '') 119 | text = text.replace(/\s/g, '') 120 | 121 | return text.length > 0 122 | } -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/chatBox.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 | pageEncoding="ISO-8859-1"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Chatbox 11 | 12 | 13 | 14 |
15 |
16 | 17 |
18 |
19 |
20 |
21 | 22 |
23 |

Manish parashar

24 |

online

25 |
26 |
27 |
28 | 29 | 37 |
38 |
39 |
40 |

You don't have message yet!

41 | 53 |
54 |
55 |
56 | 57 | 58 |
59 |
60 |
61 |
62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/cta-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/feature-icon-01.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/feature-icon-02.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/feature-icon-03.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/feature-icon-04.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/feature-icon-05.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/feature-icon-06.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/hero-back-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/hero-top-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/images/pricing-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/dist/js/main.min.js: -------------------------------------------------------------------------------- 1 | !function(){window;const e=document.documentElement;if(e.classList.remove("no-js"),e.classList.add("js"),document.body.classList.contains("has-animations")){(window.sr=ScrollReveal()).reveal(".feature, .pricing-table-inner",{duration:600,distance:"20px",easing:"cubic-bezier(0.5, -0.01, 0, 1.005)",origin:"bottom",interval:100}),e.classList.add("anime-ready"),anime.timeline({targets:".hero-figure-box-05"}).add({duration:400,easing:"easeInOutExpo",scaleX:[.05,.05],scaleY:[0,1],perspective:"500px",delay:anime.random(0,400)}).add({duration:400,easing:"easeInOutExpo",scaleX:1}).add({duration:800,rotateY:"-15deg",rotateX:"8deg",rotateZ:"-1deg"}),anime.timeline({targets:".hero-figure-box-06, .hero-figure-box-07"}).add({duration:400,easing:"easeInOutExpo",scaleX:[.05,.05],scaleY:[0,1],perspective:"500px",delay:anime.random(0,400)}).add({duration:400,easing:"easeInOutExpo",scaleX:1}).add({duration:800,rotateZ:"20deg"}),anime({targets:".hero-figure-box-01, .hero-figure-box-02, .hero-figure-box-03, .hero-figure-box-04, .hero-figure-box-08, .hero-figure-box-09, .hero-figure-box-10",duration:anime.random(600,800),delay:anime.random(600,800),rotate:[anime.random(-360,360),function(e){return e.getAttribute("data-rotation")}],scale:[.7,1],opacity:[0,1],easing:"easeInOutExpo"})}}(); -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | NewMedico 8 | 11 | 12 | 13 | 15 | 16 | 17 |
18 | 31 | 32 |
33 |
34 |
35 |
36 |
37 |

New Medico

38 |

New Medico is a healthcare platform 39 | that allows doctors and clients to connect and communicate, much 40 | like Instagram. With New Medico, clients can easily find and 41 | connect with doctors, book appointments, and receive 42 | personalized healthcare advice, all from the comfort of their 43 | own homes. The platform also allows doctors to manage their 44 | patient records, offer virtual consultations, and build their 45 | online presence. By providing a seamless and convenient way for 46 | doctors and clients to connect, New Medico is helping to 47 | revolutionize the healthcare industry and improve access to 48 | quality healthcare for all. .

49 |
50 | LOGIN NOWREGISTER 52 |
53 |
54 |
55 | 57 | 58 | 59 |
61 |
63 |
65 |
67 |
68 |
69 |
70 |
72 |
74 |
76 |
77 |
78 |
79 |
80 | 81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | Feature 01 89 |
90 |

Be Productive

91 |

Fermentum posuere urna nec 92 | tincidunt praesent semper feugiat nibh. A arcu cursus vitae 93 | congue mauris. Nam at lectus urna duis convallis. Mauris 94 | rhoncus aenean vel elit scelerisque mauris.

95 |
96 |
97 |
98 |
99 |
100 | Feature 02 101 |
102 |

Be Productive

103 |

Fermentum posuere urna nec 104 | tincidunt praesent semper feugiat nibh. A arcu cursus vitae 105 | congue mauris. Nam at lectus urna duis convallis. Mauris 106 | rhoncus aenean vel elit scelerisque mauris.

107 |
108 |
109 |
110 |
111 |
112 | Feature 03 113 |
114 |

Be Productive

115 |

Fermentum posuere urna nec 116 | tincidunt praesent semper feugiat nibh. A arcu cursus vitae 117 | congue mauris. Nam at lectus urna duis convallis. Mauris 118 | rhoncus aenean vel elit scelerisque mauris.

119 |
120 |
121 |
122 |
123 |
124 | Feature 04 125 |
126 |

Be Productive

127 |

Fermentum posuere urna nec 128 | tincidunt praesent semper feugiat nibh. A arcu cursus vitae 129 | congue mauris. Nam at lectus urna duis convallis. Mauris 130 | rhoncus aenean vel elit scelerisque mauris.

131 |
132 |
133 |
134 |
135 |
136 | Feature 05 137 |
138 |

Be Productive

139 |

Fermentum posuere urna nec 140 | tincidunt praesent semper feugiat nibh. A arcu cursus vitae 141 | congue mauris. Nam at lectus urna duis convallis. Mauris 142 | rhoncus aenean vel elit scelerisque mauris.

143 |
144 |
145 |
146 |
147 |
148 | Feature 06 149 |
150 |

Be Productive

151 |

Fermentum posuere urna nec 152 | tincidunt praesent semper feugiat nibh. A arcu cursus vitae 153 | congue mauris. Nam at lectus urna duis convallis. Mauris 154 | rhoncus aenean vel elit scelerisque mauris.

155 |
156 |
157 |
158 |
159 |
160 |
161 | 162 |
163 |
164 |
165 |
166 |

Unlimited for all

167 |

Lorem ipsum dolor sit amet, 168 | consectetur adipiscing elit, sed do eiusmod tempor incididunt ut 169 | labore et dolore magna aliqua. Ut ad quis nostrud.

170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 | $49/month 180 |
181 |
182 |
What 183 | you will get
184 |
    185 |
  • Lorem ipsum dolor sit nisi
  • 186 |
  • Lorem ipsum dolor sit nisi
  • 187 |
  • Lorem ipsum dolor sit nisi
  • 188 |
  • Lorem ipsum dolor sit nisi
  • 189 |
190 |
191 |
192 | Pre order now 194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 | 202 |
203 |
204 |
205 |

Still not convinced on buying?

206 |
207 | Get 208 | in touch 209 |
210 |
211 |
212 |
213 |
214 | 215 | 257 |
258 | 259 | 260 | 261 | 262 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/package-sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "solid", 3 | "version": "1.0.0", 4 | "description": "Solid Template", 5 | "author": "Pasquale Vitiello ", 6 | "license": "GPLv3", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://bitbucket.org/pasqualevitiello/solid.git" 10 | }, 11 | "bugs": { 12 | "url": "https://bitbucket.org/pasqualevitiello/solid/issues" 13 | }, 14 | "scripts": { 15 | "clean": "rimraf dist/{css/*,js/*,images/*}", 16 | "autoprefixer": "postcss -u autoprefixer -r dist/css/*", 17 | "scss": "node-sass --output-style compressed -o dist/css src/scss", 18 | "lint": "eslint src/js || true", 19 | "lint-scss": "stylelint src/scss/*.scss --syntax scss || true", 20 | "uglify": "mkdirp dist/js -p && uglifyjs src/js/*.js -m -c -o dist/js/main.min.js", 21 | "imagemin": "imagemin src/images/* -o dist/images", 22 | "serve": "browser-sync start --server --files \"dist/css/*.css, dist/js/*.js, **/*.html, !node_modules/**/*.html\"", 23 | "build:css": "run-s lint-scss scss autoprefixer", 24 | "build:js": "run-s lint uglify", 25 | "build:images": "run-s imagemin", 26 | "build": "run-s build:*", 27 | "watch:css": "onchange \"src/scss\" -- run-s build:css", 28 | "watch:js": "onchange \"src/js\" -- run-s build:js", 29 | "watch:images": "onchange \"src/images\" -- run-s build:images", 30 | "watch": "run-p serve watch:*", 31 | "postinstall": "run-s build watch" 32 | }, 33 | "devDependencies": { 34 | "autoprefixer": "^9.0.1", 35 | "browser-sync": "^2.12.8", 36 | "eslint": "^5.2.0", 37 | "eslint-config-standard": "^12.0.0", 38 | "eslint-plugin-import": "^2.14.0", 39 | "eslint-plugin-node": "^7.0.1", 40 | "eslint-plugin-promise": "^3.8.0", 41 | "eslint-plugin-standard": "^3.1.0", 42 | "imagemin-cli": "^3.0.0", 43 | "mkdirp": "^0.5.1", 44 | "node-sass": "^4.9.2", 45 | "npm-run-all": "^4.1.3", 46 | "onchange": "^4.1.0", 47 | "postcss-cli": "^6.0.0", 48 | "rimraf": "^2.5.4", 49 | "stylelint": "^9.4.0", 50 | "uglify-es": "^3.3.10" 51 | }, 52 | "homepage": "https://bitbucket.org/pasqualevitiello/solid#readme", 53 | "main": ".eslintrc.js" 54 | } 55 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/register.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 | pageEncoding="ISO-8859-1"%> 3 | 4 | 5 | 6 | 7 | 8 | 9 | NewMedico 10 | 13 | 14 | 15 | 17 | 18 | 19 |
20 | 33 | 34 |
35 |
36 |
37 |
38 |
39 |
40 | 41 | 42 | 43 | 44 |
45 |
46 | 55 |
56 |
57 | 59 |
60 |
61 | 63 | 64 | 65 |
67 |
69 |
71 |
73 |
74 |
75 |
76 |
78 |
80 |
82 |
83 |
84 |
85 | 86 | 87 | 88 | 89 | 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/Screenshot_2023-05-15-16-19-37-33_99c04817c0de5652397fc8b56c3b3817 (1).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/src/images/Screenshot_2023-05-15-16-19-37-33_99c04817c0de5652397fc8b56c3b3817 (1).jpg -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/cta-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/feature-icon-01.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/feature-icon-02.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/feature-icon-03.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/feature-icon-04.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/feature-icon-05.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/feature-icon-06.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/gshan.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/src/images/gshan.jfif -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/hero-back-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/hero-top-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/imaduddin_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/src/images/imaduddin_photo.png -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/manish.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/src/images/manish.jpg -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/pexels-anna-nekrashevich-7214628.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/src/images/pexels-anna-nekrashevich-7214628.jpg -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/pexels-markus-spiske-177598.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishParashar0/Projects-on-java/af0fe2015842399761337885d0130c6e8678065a/NewMedico/src/main/webapp/src/images/pexels-markus-spiske-177598.jpg -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/images/pricing-illustration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/js/main.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | const win = window 3 | const doc = document.documentElement 4 | 5 | doc.classList.remove('no-js') 6 | doc.classList.add('js') 7 | 8 | // Reveal animations 9 | if (document.body.classList.contains('has-animations')) { 10 | /* global ScrollReveal */ 11 | const sr = window.sr = ScrollReveal() 12 | 13 | sr.reveal('.feature, .pricing-table-inner', { 14 | duration: 600, 15 | distance: '20px', 16 | easing: 'cubic-bezier(0.5, -0.01, 0, 1.005)', 17 | origin: 'bottom', 18 | interval: 100 19 | }) 20 | 21 | doc.classList.add('anime-ready') 22 | /* global anime */ 23 | anime.timeline({ 24 | targets: '.hero-figure-box-05' 25 | }).add({ 26 | duration: 400, 27 | easing: 'easeInOutExpo', 28 | scaleX: [0.05, 0.05], 29 | scaleY: [0, 1], 30 | perspective: '500px', 31 | delay: anime.random(0, 400) 32 | }).add({ 33 | duration: 400, 34 | easing: 'easeInOutExpo', 35 | scaleX: 1 36 | }).add({ 37 | duration: 800, 38 | rotateY: '-15deg', 39 | rotateX: '8deg', 40 | rotateZ: '-1deg' 41 | }) 42 | 43 | anime.timeline({ 44 | targets: '.hero-figure-box-06, .hero-figure-box-07' 45 | }).add({ 46 | duration: 400, 47 | easing: 'easeInOutExpo', 48 | scaleX: [0.05, 0.05], 49 | scaleY: [0, 1], 50 | perspective: '500px', 51 | delay: anime.random(0, 400) 52 | }).add({ 53 | duration: 400, 54 | easing: 'easeInOutExpo', 55 | scaleX: 1 56 | }).add({ 57 | duration: 800, 58 | rotateZ: '20deg' 59 | }) 60 | 61 | anime({ 62 | targets: '.hero-figure-box-01, .hero-figure-box-02, .hero-figure-box-03, .hero-figure-box-04, .hero-figure-box-08, .hero-figure-box-09, .hero-figure-box-10', 63 | duration: anime.random(600, 800), 64 | delay: anime.random(600, 800), 65 | rotate: [ anime.random(-360, 360), function (el) { return el.getAttribute('data-rotation') } ], 66 | scale: [0.7, 1], 67 | opacity: [0, 1], 68 | easing: 'easeInOutExpo' 69 | }) 70 | } 71 | }()) 72 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/_normalize.scss: -------------------------------------------------------------------------------- 1 | html { 2 | line-height: 1.15; 3 | -ms-text-size-adjust: 100%; 4 | -webkit-text-size-adjust: 100%; 5 | } 6 | 7 | body { 8 | margin: 0; 9 | } 10 | 11 | article, 12 | aside, 13 | footer, 14 | header, 15 | nav, 16 | section { 17 | display: block; 18 | } 19 | 20 | h1 { 21 | font-size: 2em; 22 | margin: 0.67em 0; 23 | } 24 | 25 | figcaption, 26 | figure, 27 | main { 28 | display: block; 29 | } 30 | 31 | figure { 32 | margin: 1em 40px; 33 | } 34 | 35 | hr { 36 | box-sizing: content-box; 37 | height: 0; 38 | overflow: visible; 39 | } 40 | 41 | pre { 42 | font-family: monospace, monospace; 43 | font-size: 1em; 44 | } 45 | 46 | a { 47 | background-color: transparent; 48 | -webkit-text-decoration-skip: objects; 49 | } 50 | 51 | abbr[title] { 52 | border-bottom: none; 53 | text-decoration: underline; 54 | text-decoration: underline dotted; 55 | } 56 | 57 | b, 58 | strong { 59 | font-weight: inherit; 60 | } 61 | 62 | b, 63 | strong { 64 | font-weight: bolder; 65 | } 66 | 67 | code, 68 | kbd, 69 | samp { 70 | font-family: monospace, monospace; 71 | font-size: 1em; 72 | } 73 | 74 | dfn { 75 | font-style: italic; 76 | } 77 | 78 | mark { 79 | background-color: #ff0; 80 | color: #000; 81 | } 82 | 83 | small { 84 | font-size: 80%; 85 | } 86 | 87 | sub, 88 | sup { 89 | font-size: 75%; 90 | line-height: 0; 91 | position: relative; 92 | vertical-align: baseline; 93 | } 94 | 95 | sub { 96 | bottom: -0.25em; 97 | } 98 | 99 | sup { 100 | top: -0.5em; 101 | } 102 | 103 | audio, 104 | video { 105 | display: inline-block; 106 | } 107 | 108 | audio:not([controls]) { 109 | display: none; 110 | height: 0; 111 | } 112 | 113 | img { 114 | border-style: none; 115 | } 116 | 117 | svg:not(:root) { 118 | overflow: hidden; 119 | } 120 | 121 | button, 122 | input, 123 | optgroup, 124 | select, 125 | textarea { 126 | font-family: sans-serif; 127 | font-size: 100%; 128 | line-height: 1.15; 129 | margin: 0; 130 | } 131 | 132 | button, 133 | input { 134 | overflow: visible; 135 | } 136 | 137 | button, 138 | select { 139 | text-transform: none; 140 | } 141 | 142 | button, 143 | html [type="button"], 144 | [type="reset"], 145 | [type="submit"] { 146 | -webkit-appearance: button; 147 | } 148 | 149 | button::-moz-focus-inner, 150 | [type="button"]::-moz-focus-inner, 151 | [type="reset"]::-moz-focus-inner, 152 | [type="submit"]::-moz-focus-inner { 153 | border-style: none; 154 | padding: 0; 155 | } 156 | 157 | button:-moz-focusring, 158 | [type="button"]:-moz-focusring, 159 | [type="reset"]:-moz-focusring, 160 | [type="submit"]:-moz-focusring { 161 | outline: 1px dotted ButtonText; 162 | } 163 | 164 | fieldset { 165 | padding: 0.35em 0.75em 0.625em; 166 | } 167 | 168 | legend { 169 | box-sizing: border-box; 170 | color: inherit; 171 | display: table; 172 | max-width: 100%; 173 | padding: 0; 174 | white-space: normal; 175 | } 176 | 177 | progress { 178 | display: inline-block; 179 | vertical-align: baseline; 180 | } 181 | 182 | textarea { 183 | overflow: auto; 184 | } 185 | 186 | [type="checkbox"], 187 | [type="radio"] { 188 | box-sizing: border-box; 189 | padding: 0; 190 | } 191 | 192 | [type="number"]::-webkit-inner-spin-button, 193 | [type="number"]::-webkit-outer-spin-button { 194 | height: auto; 195 | } 196 | 197 | [type="search"] { 198 | -webkit-appearance: textfield; 199 | outline-offset: -2px; 200 | } 201 | 202 | [type="search"]::-webkit-search-cancel-button, 203 | [type="search"]::-webkit-search-decoration { 204 | -webkit-appearance: none; 205 | } 206 | 207 | ::-webkit-file-upload-button { 208 | -webkit-appearance: button; 209 | font: inherit; 210 | } 211 | 212 | details, 213 | menu { 214 | display: block; 215 | } 216 | 217 | summary { 218 | display: list-item; 219 | } 220 | 221 | canvas { 222 | display: inline-block; 223 | } 224 | 225 | template { 226 | display: none; 227 | } 228 | 229 | [hidden] { 230 | display: none; 231 | } -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/abstracts/_functions.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------- 2 | // Retrieve Font Size ------------------------------------------------- 3 | // Used in _mixins.scss [@mixin font-size] ---------------------------- 4 | // -------------------------------------------------------------------- 5 | @function get-font-size($size, $elem) { 6 | @return nth(map-get(map-get($font__scale, $elem), $size), 1); 7 | } 8 | 9 | // -------------------------------------------------------------------- 10 | // Retrieve Line Height ----------------------------------------------- 11 | // Used in _mixins.scss [@mixin font-size] ---------------------------- 12 | // -------------------------------------------------------------------- 13 | @function get-line-height($size, $elem) { 14 | @return nth(map-get(map-get($font__scale, $elem), $size), 2); 15 | } 16 | 17 | // -------------------------------------------------------------------- 18 | // Retrieve Kerning --------------------------------------------------- 19 | // Used in _mixins.scss [@mixin font-size] ---------------------------- 20 | // -------------------------------------------------------------------- 21 | @function get-kerning($size, $elem) { 22 | @return nth(map-get(map-get($font__scale, $elem), $size), 3); 23 | } 24 | 25 | // -------------------------------------------------------------------- 26 | // Retrieve Font Family ----------------------------------------------- 27 | // Used in _mixins.scss [@mixin font-family] -------------------------- 28 | // -------------------------------------------------------------------- 29 | @function get-font-family($elem) { 30 | @return map-get($font__family, $elem); 31 | } 32 | 33 | // -------------------------------------------------------------------- 34 | // Retrieve Font Weight ----------------------------------------------- 35 | // Used in _mixins.scss [@mixin font-weight] -------------------------- 36 | // -------------------------------------------------------------------- 37 | @function get-font-weight($elem) { 38 | @return map-get($font__weight, $elem); 39 | } 40 | 41 | // -------------------------------------------------------------------- 42 | // Retrieve Padding of Content Area Elements -------------------------- 43 | // Used in _mixins.scss [@mixin font-size] ---------------------------- 44 | // -------------------------------------------------------------------- 45 | @function get-content-padding($elem) { 46 | @return map-get($content__padding, $elem); 47 | } 48 | 49 | // -------------------------------------------------------------------- 50 | // Retrieve Colors ---------------------------------------------------- 51 | // Usage: color(typography, 1) ---------------------------------------------- 52 | // -------------------------------------------------------------------- 53 | @function color($elem, $variant) { 54 | @return map-get(map-get($color, $elem), $variant); 55 | } 56 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/abstracts/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Font-size + Line-height + Kerning 2 | // Usage: @include font-size(1, mobile) 3 | // Add more true/false args to control what to output: font-size, line-height, kerning 4 | @mixin font-size($size, $elem, $font-size: true, $line-height: false, $kerning: false, $adjust-font-size: 0) { 5 | @if not map-has-key(map-get($font__scale, $elem), $size) { 6 | @warn "'#{$size}' key does not exist in array!"; 7 | } 8 | @if ( $font-size != false ) { 9 | font-size: get-font-size($size, $elem) + $adjust-font-size; 10 | } 11 | @if ( $line-height == true ) { 12 | line-height: get-line-height($size, $elem); 13 | } 14 | @if ( $kerning == true ) { 15 | letter-spacing: get-kerning($size, $elem); 16 | } 17 | } 18 | 19 | // Font Family 20 | @mixin font-family($elem) { 21 | font-family: unquote(get-font-family($elem)); 22 | } 23 | 24 | // Font Weight 25 | @mixin font-weight($elem) { 26 | font-weight: get-font-weight($elem); 27 | } 28 | 29 | // Anchor aspect 30 | @mixin anchor-aspect($type: 'main') { 31 | @if ($type == 'main') { // Base 32 | color: color(typography, 2); 33 | text-decoration: underline; 34 | 35 | &:hover, 36 | &:active { 37 | outline: 0; 38 | text-decoration: none; 39 | } 40 | } @else if ($type == 'header') { 41 | color: color(typography, 2); 42 | text-transform: uppercase; 43 | text-decoration: none; 44 | 45 | &:hover, 46 | &:active { 47 | } 48 | } @else if ($type == 'footer') { 49 | color: color(typography, 2); 50 | text-decoration: none; 51 | 52 | &:hover, 53 | &:active { 54 | text-decoration: underline; 55 | } 56 | } 57 | } 58 | 59 | @mixin shadow { 60 | box-shadow: 0 24px 48px rgba(color(bg, 1), .24); 61 | mix-blend-mode: multiply; 62 | } 63 | 64 | @mixin shadow-sm { 65 | box-shadow: 0 16px 24px rgba(color(bg, 1), .24); 66 | mix-blend-mode: multiply; 67 | } 68 | 69 | @mixin divider-mix { 70 | display: block; 71 | height: 1px; 72 | background: color(bg, 3); 73 | } 74 | 75 | @mixin divider($type: false) { 76 | @if ( $type == 'before' ) { 77 | position: relative; 78 | 79 | &::before { 80 | content: ''; 81 | position: absolute; 82 | top: 0; 83 | left: 0; 84 | width: 100%; 85 | @include divider-mix; 86 | } 87 | } @else if ($type == 'after') { 88 | position: relative; 89 | 90 | &::after { 91 | content: ''; 92 | position: absolute; 93 | bottom: 0; 94 | left: 0; 95 | width: 100%; 96 | @include divider-mix; 97 | } 98 | } @else { 99 | @include divider-mix; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/abstracts/_variables.scss: -------------------------------------------------------------------------------- 1 | // -------------------------------------------- 2 | // Colors ------------------------------------- 3 | // Usage example: color(primary, main) 4 | // -------------------------------------------- 5 | $color: ( 6 | typography: ( 7 | 1: #FFFFFF, 8 | 2: #8A94A7, 9 | 3: #3B404C 10 | ), 11 | bg: ( 12 | 1: #15181D, 13 | 2: #1D2026, 14 | 3: #242830, 15 | 4: #2C3039 16 | ), 17 | primary: ( 18 | 1: #0270D7, 19 | 2: #0F8AFD, 20 | 3: #0256A4 21 | ) 22 | ); 23 | 24 | // -------------------------------------------- 25 | // Typography --------------------------------- 26 | // -------------------------------------------- 27 | $font__family: ( 28 | base: '"IBM Plex Sans", sans-serif', // font-family(base) 29 | heading: '"IBM Plex Sans", sans-serif', // font-family(heading) 30 | code: 'Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace', // font-family(code) 31 | pre: '"Courier 10 Pitch", Courier, monospace' // font-family(pre) 32 | ); 33 | 34 | $font__sizes: ( 35 | alpha: ( 44px, 54px, 0px ), // font-size, line-height, kerning (use '0' if don't want to output any kerning) 36 | beta: ( 38px, 48px, 0px ), 37 | gamma: ( 32px, 42px, 0px ), 38 | delta: ( 24px, 34px, 0px ), 39 | epsilon: ( 20px, 30px, -0.1px ), 40 | zeta: ( 18px, 28px, -0.1px ), 41 | eta: ( 16px, 24px, -0.1px ), 42 | theta: ( 14px, 22px, 0px ) 43 | ); 44 | 45 | $font__scale: ( 46 | desktop: ( // i.e. $breakpoint__m + $breakpoint__l (600 - 1024) 47 | 1: map-get($font__sizes, alpha), // H1 48 | 2: map-get($font__sizes, beta), // H2 49 | 3: map-get($font__sizes, gamma), // H3 50 | 4: map-get($font__sizes, delta), // H4, H5, H6 51 | 5: map-get($font__sizes, epsilon), // Body 52 | 6: map-get($font__sizes, zeta), // Text small (e.g. faq's) 53 | 7: map-get($font__sizes, eta), // Text smaller (e.g. pricing, testimonials) 54 | 8: map-get($font__sizes, theta) // Footer area 55 | ), 56 | mobile: ( // i.e. $breakpoint__xs + $breakpoint__s (up to 600) 57 | 1: map-get($font__sizes, beta), // H1 58 | 2: map-get($font__sizes, gamma), // H2 59 | 3: map-get($font__sizes, delta), // H3 60 | 4: map-get($font__sizes, epsilon), // H4, H5, H6 61 | 5: map-get($font__sizes, epsilon), // Body 62 | 6: map-get($font__sizes, zeta), // Text small (e.g. faq's) 63 | 7: map-get($font__sizes, eta), // Text smaller (e.g. pricing, testimonials) 64 | 8: map-get($font__sizes, theta) // Footer area 65 | ) 66 | ); 67 | 68 | $font__weight: ( 69 | regular: 400, // font__weight(regular) 70 | medium: 500, // font__weight(medium) 71 | semibold: 600, // font__weight(semi-bold) 72 | bold: 700 // font__weight(bold) 73 | ); 74 | 75 | // -------------------------------------------- 76 | // Structure ---------------------------------- 77 | // -------------------------------------------- 78 | $content__padding: ( 79 | mobile: 16px, 80 | desktop: 24px 81 | ); 82 | $container__width: 1080px; 83 | $container__width-sm: 800px; 84 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/base/_base.scss: -------------------------------------------------------------------------------- 1 | html { 2 | box-sizing: border-box; 3 | } 4 | 5 | *, 6 | *:before, 7 | *:after { /* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */ 8 | box-sizing: inherit; 9 | } 10 | 11 | body { 12 | background: color(bg, 2); /* Fallback for when there is no custom background color defined. */ 13 | -moz-osx-font-smoothing: grayscale; 14 | -webkit-font-smoothing: antialiased; 15 | } 16 | 17 | hr { 18 | border: 0; 19 | @include divider(); 20 | margin-top: 24px; 21 | margin-bottom: 24px; 22 | } 23 | 24 | ul, ol { 25 | margin-top: 0; 26 | margin-bottom: 24px; 27 | padding-left: 24px; 28 | } 29 | 30 | ul { 31 | list-style: disc; 32 | } 33 | 34 | ol { 35 | list-style: decimal; 36 | } 37 | 38 | li > ul, 39 | li > ol { 40 | margin-bottom: 0; 41 | } 42 | 43 | dl { 44 | margin-top: 0; 45 | margin-bottom: 24px; 46 | } 47 | 48 | dt { 49 | @include font-weight(semibold); 50 | } 51 | 52 | dd { 53 | margin-left: 24px; 54 | margin-bottom: 24px; 55 | } 56 | 57 | img { 58 | height: auto; /* Make sure images are scaled correctly. */ 59 | max-width: 100%; /* Adhere to container width. */ 60 | vertical-align: middle; 61 | } 62 | 63 | figure { 64 | margin: 24px 0; /* Extra wide images within figure tags don't overflow the content area. */ 65 | } 66 | 67 | figcaption { 68 | @include font-size(7, mobile, true, true); 69 | padding: 8px 0; 70 | } 71 | 72 | img, 73 | svg { 74 | display: block; 75 | } 76 | 77 | // tables 78 | table { 79 | border-collapse: collapse; 80 | margin-bottom: 24px; 81 | width: 100%; 82 | } 83 | 84 | tr { 85 | border-bottom: 1px solid color(bg, 3); 86 | } 87 | 88 | th { 89 | text-align: left; 90 | } 91 | 92 | th, 93 | td { 94 | padding: 10px 16px; 95 | 96 | &:first-child { 97 | padding-left: 0; 98 | } 99 | 100 | &:last-child { 101 | padding-right: 0; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/base/_helpers.scss: -------------------------------------------------------------------------------- 1 | .container, 2 | .container-sm { 3 | width: 100%; 4 | margin: 0 auto; 5 | padding-left: get-content-padding(mobile); 6 | padding-right: get-content-padding(mobile); 7 | 8 | @include media( '>small' ) { 9 | padding-left: get-content-padding(desktop); 10 | padding-right: get-content-padding(desktop); 11 | } 12 | } 13 | 14 | .container { 15 | max-width: $container__width + ( get-content-padding(desktop) * 2 ); 16 | } 17 | 18 | .container-sm { 19 | max-width: $container__width-sm + ( get-content-padding(desktop) * 2 ); 20 | } 21 | 22 | .container { 23 | 24 | .container-sm { 25 | max-width: $container__width-sm; 26 | padding-left: 0; 27 | padding-right: 0; 28 | } 29 | } 30 | 31 | /* Text meant only for screen readers. */ 32 | .screen-reader-text { 33 | clip: rect(1px, 1px, 1px, 1px); 34 | position: absolute !important; 35 | height: 1px; 36 | width: 1px; 37 | overflow: hidden; 38 | word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */ 39 | 40 | &:focus { 41 | border-radius: 2px; 42 | box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); 43 | clip: auto !important; 44 | display: block; 45 | @include font-size(8, mobile, true, false, true); 46 | @if ( get-font-size(8, desktop) != get-font-size(8, mobile) ) { 47 | @include media( '>medium' ) { 48 | @include font-size(8, desktop, true, false, true); 49 | } 50 | } 51 | @include font-weight(semibold); 52 | line-height: 16px; 53 | text-decoration: none; 54 | text-transform: uppercase; 55 | background-color: color(bg, 2); 56 | color: color(primary, 1) !important; 57 | border: none; 58 | height: auto; 59 | left: 8px; 60 | padding: 16px 32px; 61 | top: 8px; 62 | width: auto; 63 | z-index: 100000; 64 | } 65 | } 66 | 67 | .list-reset { 68 | list-style: none; 69 | padding: 0; 70 | } 71 | 72 | .text-left { 73 | text-align: left; 74 | } 75 | 76 | .text-center { 77 | text-align: center; 78 | } 79 | 80 | .text-right { 81 | text-align: right; 82 | } 83 | 84 | .text-primary { 85 | color: color(primary, 1); 86 | } 87 | 88 | .has-top-divider { 89 | @include divider(before); 90 | } 91 | 92 | .has-bottom-divider { 93 | @include divider(after); 94 | } 95 | 96 | .m-0 { 97 | margin: 0; 98 | } 99 | 100 | .mt-0 { 101 | margin-top: 0; 102 | } 103 | 104 | .mr-0 { 105 | margin-right: 0; 106 | } 107 | 108 | .mb-0 { 109 | margin-bottom: 0; 110 | } 111 | 112 | .ml-0 { 113 | margin-left: 0; 114 | } 115 | 116 | .m-8 { 117 | margin: 8px; 118 | } 119 | 120 | .mt-8 { 121 | margin-top: 8px; 122 | } 123 | 124 | .mr-8 { 125 | margin-right: 8px; 126 | } 127 | 128 | .mb-8 { 129 | margin-bottom: 8px; 130 | } 131 | 132 | .ml-8 { 133 | margin-left: 8px; 134 | } 135 | 136 | .m-16 { 137 | margin: 16px; 138 | } 139 | 140 | .mt-16 { 141 | margin-top: 16px; 142 | } 143 | 144 | .mr-16 { 145 | margin-right: 16px; 146 | } 147 | 148 | .mb-16 { 149 | margin-bottom: 16px; 150 | } 151 | 152 | .ml-16 { 153 | margin-left: 16px; 154 | } 155 | 156 | .m-24 { 157 | margin: 24px; 158 | } 159 | 160 | .mt-24 { 161 | margin-top: 24px; 162 | } 163 | 164 | .mr-24 { 165 | margin-right: 24px; 166 | } 167 | 168 | .mb-24 { 169 | margin-bottom: 24px; 170 | } 171 | 172 | .ml-24 { 173 | margin-left: 24px; 174 | } 175 | 176 | .m-32 { 177 | margin: 32px; 178 | } 179 | 180 | .mt-32 { 181 | margin-top: 32px; 182 | } 183 | 184 | .mr-32 { 185 | margin-right: 32px; 186 | } 187 | 188 | .mb-32 { 189 | margin-bottom: 32px; 190 | } 191 | 192 | .ml-32 { 193 | margin-left: 32px; 194 | } 195 | 196 | .m-40 { 197 | margin: 40px; 198 | } 199 | 200 | .mt-40 { 201 | margin-top: 40px; 202 | } 203 | 204 | .mr-40 { 205 | margin-right: 40px; 206 | } 207 | 208 | .mb-40 { 209 | margin-bottom: 40px; 210 | } 211 | 212 | .ml-40 { 213 | margin-left: 40px; 214 | } 215 | 216 | .m-48 { 217 | margin: 48px; 218 | } 219 | 220 | .mt-48 { 221 | margin-top: 48px; 222 | } 223 | 224 | .mr-48 { 225 | margin-right: 48px; 226 | } 227 | 228 | .mb-48 { 229 | margin-bottom: 48px; 230 | } 231 | 232 | .ml-48 { 233 | margin-left: 48px; 234 | } 235 | 236 | .m-56 { 237 | margin: 56px; 238 | } 239 | 240 | .mt-56 { 241 | margin-top: 56px; 242 | } 243 | 244 | .mr-56 { 245 | margin-right: 56px; 246 | } 247 | 248 | .mb-56 { 249 | margin-bottom: 56px; 250 | } 251 | 252 | .ml-56 { 253 | margin-left: 56px; 254 | } 255 | 256 | .m-64 { 257 | margin: 64px; 258 | } 259 | 260 | .mt-64 { 261 | margin-top: 64px; 262 | } 263 | 264 | .mr-64 { 265 | margin-right: 64px; 266 | } 267 | 268 | .mb-64 { 269 | margin-bottom: 64px; 270 | } 271 | 272 | .ml-64 { 273 | margin-left: 64px; 274 | } 275 | 276 | .p-0 { 277 | padding: 0; 278 | } 279 | 280 | .pt-0 { 281 | padding-top: 0; 282 | } 283 | 284 | .pr-0 { 285 | padding-right: 0; 286 | } 287 | 288 | .pb-0 { 289 | padding-bottom: 0; 290 | } 291 | 292 | .pl-0 { 293 | padding-left: 0; 294 | } 295 | 296 | .p-8 { 297 | padding: 8px; 298 | } 299 | 300 | .pt-8 { 301 | padding-top: 8px; 302 | } 303 | 304 | .pr-8 { 305 | padding-right: 8px; 306 | } 307 | 308 | .pb-8 { 309 | padding-bottom: 8px; 310 | } 311 | 312 | .pl-8 { 313 | padding-left: 8px; 314 | } 315 | 316 | .p-16 { 317 | padding: 16px; 318 | } 319 | 320 | .pt-16 { 321 | padding-top: 16px; 322 | } 323 | 324 | .pr-16 { 325 | padding-right: 16px; 326 | } 327 | 328 | .pb-16 { 329 | padding-bottom: 16px; 330 | } 331 | 332 | .pl-16 { 333 | padding-left: 16px; 334 | } 335 | 336 | .p-24 { 337 | padding: 24px; 338 | } 339 | 340 | .pt-24 { 341 | padding-top: 24px; 342 | } 343 | 344 | .pr-24 { 345 | padding-right: 24px; 346 | } 347 | 348 | .pb-24 { 349 | padding-bottom: 24px; 350 | } 351 | 352 | .pl-24 { 353 | padding-left: 24px; 354 | } 355 | 356 | .p-32 { 357 | padding: 32px; 358 | } 359 | 360 | .pt-32 { 361 | padding-top: 32px; 362 | } 363 | 364 | .pr-32 { 365 | padding-right: 32px; 366 | } 367 | 368 | .pb-32 { 369 | padding-bottom: 32px; 370 | } 371 | 372 | .pl-32 { 373 | padding-left: 32px; 374 | } 375 | 376 | .p-40 { 377 | padding: 40px; 378 | } 379 | 380 | .pt-40 { 381 | padding-top: 40px; 382 | } 383 | 384 | .pr-40 { 385 | padding-right: 40px; 386 | } 387 | 388 | .pb-40 { 389 | padding-bottom: 40px; 390 | } 391 | 392 | .pl-40 { 393 | padding-left: 40px; 394 | } 395 | 396 | .p-48 { 397 | padding: 48px; 398 | } 399 | 400 | .pt-48 { 401 | padding-top: 48px; 402 | } 403 | 404 | .pr-48 { 405 | padding-right: 48px; 406 | } 407 | 408 | .pb-48 { 409 | padding-bottom: 48px; 410 | } 411 | 412 | .pl-48 { 413 | padding-left: 48px; 414 | } 415 | 416 | .p-56 { 417 | padding: 56px; 418 | } 419 | 420 | .pt-56 { 421 | padding-top: 56px; 422 | } 423 | 424 | .pr-56 { 425 | padding-right: 56px; 426 | } 427 | 428 | .pb-56 { 429 | padding-bottom: 56px; 430 | } 431 | 432 | .pl-56 { 433 | padding-left: 56px; 434 | } 435 | 436 | .p-64 { 437 | padding: 64px; 438 | } 439 | 440 | .pt-64 { 441 | padding-top: 64px; 442 | } 443 | 444 | .pr-64 { 445 | padding-right: 64px; 446 | } 447 | 448 | .pb-64 { 449 | padding-bottom: 64px; 450 | } 451 | 452 | .pl-64 { 453 | padding-left: 64px; 454 | } 455 | 456 | /* Reveal animations */ 457 | .sr { 458 | 459 | .has-animations { 460 | 461 | .is-revealing { 462 | visibility: hidden; 463 | } 464 | } 465 | } 466 | 467 | .has-animations { 468 | 469 | .anime-element { 470 | visibility: hidden; 471 | 472 | .anime-ready & { 473 | visibility: visible; 474 | } 475 | } 476 | } 477 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/base/_typography.scss: -------------------------------------------------------------------------------- 1 | html { 2 | @include font-size(5, mobile, true, true); 3 | @if ( get-font-size(5, desktop) != get-font-size(5, mobile) ) { 4 | @include media( '>medium' ) { 5 | @include font-size(5, desktop, true, true, true); 6 | } 7 | } 8 | } 9 | 10 | body { 11 | color: color(typography, 2); 12 | font-size: 1rem; 13 | } 14 | 15 | body, 16 | button, 17 | input, 18 | select, 19 | textarea { 20 | @include font-family(base); 21 | } 22 | 23 | a { 24 | @include anchor-aspect(main); 25 | } 26 | 27 | h1, h2, h3, h4, h5, h6, 28 | .h1, .h2, .h3, .h4, .h5, .h6 { 29 | clear: both; 30 | color: color(typography, 1); 31 | @if ( get-font-family(heading) != get-font-family(base) ) { 32 | @include font-family(heading); 33 | } 34 | @include font-weight(semibold); 35 | } 36 | 37 | h1, 38 | .h1 { 39 | @include font-size(1, mobile, true, true, true); 40 | @if ( get-font-size(1, desktop) != get-font-size(1, mobile) ) { 41 | @include media( '>medium' ) { 42 | @include font-size(1, desktop, true, true, true); 43 | } 44 | } 45 | } 46 | 47 | h2, 48 | .h2 { 49 | @include font-size(2, mobile, true, true, true); 50 | @if ( get-font-size(2, desktop) != get-font-size(2, mobile) ) { 51 | @include media( '>medium' ) { 52 | @include font-size(2, desktop, true, true, true); 53 | } 54 | } 55 | } 56 | 57 | h3, 58 | .h3, 59 | blockquote { 60 | @include font-size(3, mobile, true, true, true); 61 | @if ( get-font-size(3, desktop) != get-font-size(3, mobile) ) { 62 | @include media( '>medium' ) { 63 | @include font-size(3, desktop, true, true, true); 64 | } 65 | } 66 | } 67 | 68 | h4, 69 | h5, 70 | h6, 71 | .h4, 72 | .h5, 73 | .h6 { 74 | @include font-size(4, mobile, true, true, true); 75 | @if ( get-font-size(4, desktop) != get-font-size(4, mobile) ) { 76 | @include media( '>medium' ) { 77 | @include font-size(4, desktop, true, true, true); 78 | } 79 | } 80 | } 81 | 82 | @include media( '<=medium' ) { 83 | 84 | .h1-mobile { 85 | @include font-size(1, mobile, true, true, true); 86 | } 87 | 88 | .h2-mobile { 89 | @include font-size(2, mobile, true, true, true); 90 | } 91 | 92 | .h3-mobile { 93 | @include font-size(3, mobile, true, true, true); 94 | } 95 | 96 | .h4-mobile, 97 | .h5-mobile, 98 | .h6-mobile { 99 | @include font-size(4, mobile, true, true, true); 100 | } 101 | } 102 | 103 | .text-light { 104 | color: color(typography, 2i); 105 | 106 | a { 107 | color: color(typography, 2i); 108 | } 109 | } 110 | 111 | .text-light { 112 | 113 | h1, h2, h3, h4, h5, h6, 114 | .h1, .h2, .h3, .h4, .h5, .h6 { 115 | color: color(typography, 1i) !important; 116 | } 117 | } 118 | 119 | .text-sm { 120 | @include font-size(6, mobile, true, true, true); 121 | @if ( get-font-size(6, desktop) != get-font-size(6, mobile) ) { 122 | @include media( '>medium' ) { 123 | @include font-size(6, desktop, true, true, true); 124 | } 125 | } 126 | } 127 | 128 | .text-xs { 129 | @include font-size(7, mobile, true, true, true); 130 | @if ( get-font-size(7, desktop) != get-font-size(7, mobile) ) { 131 | @include media( '>medium' ) { 132 | @include font-size(7, desktop, true, true, true); 133 | } 134 | } 135 | } 136 | 137 | h1, h2, 138 | .h1, .h2 { 139 | margin-top: 48px; 140 | margin-bottom: 16px; 141 | } 142 | 143 | h3, 144 | .h3 { 145 | margin-top: 36px; 146 | margin-bottom: 12px; 147 | } 148 | 149 | h4, h5, h6, 150 | .h4, .h5, .h6 { 151 | margin-top: 24px; 152 | margin-bottom: 4px; 153 | } 154 | 155 | p { 156 | margin-top: 0; 157 | margin-bottom: 24px; 158 | } 159 | 160 | dfn, cite, em, i { 161 | font-style: italic; 162 | } 163 | 164 | blockquote { 165 | color: color(typography, 3); 166 | font-style: italic; 167 | margin-top: 24px; 168 | margin-bottom: 24px; 169 | margin-left: 24px; 170 | 171 | &::before { 172 | content: "\201C"; 173 | } 174 | 175 | &::after { 176 | content: "\201D"; 177 | } 178 | 179 | p { 180 | display: inline; 181 | } 182 | } 183 | 184 | address { 185 | color: color(typography, 2); 186 | border-width: 1px 0; 187 | border-style: solid; 188 | border-color: color(bg, 3); 189 | padding: 24px 0; 190 | margin: 0 0 24px; 191 | } 192 | 193 | pre, 194 | pre h1, 195 | pre h2, 196 | pre h3, 197 | pre h4, 198 | pre h5, 199 | pre h6, 200 | pre .h1, 201 | pre .h2, 202 | pre .h3, 203 | pre .h4, 204 | pre .h5, 205 | pre .h6 { 206 | @include font-family(pre); 207 | } 208 | 209 | pre, code, kbd, tt, var { 210 | background: color(bg, 2); 211 | } 212 | 213 | pre { 214 | @include font-size(7, mobile, true, true); 215 | margin-bottom: 1.6em; 216 | max-width: 100%; 217 | overflow: auto; 218 | padding: 24px; 219 | margin-top: 24px; 220 | margin-bottom: 24px; 221 | } 222 | 223 | code, kbd, tt, var { 224 | @include font-family(code); 225 | @include font-size(7, mobile, true); 226 | padding: 2px 4px; 227 | } 228 | 229 | abbr, acronym { 230 | cursor: help; 231 | } 232 | 233 | mark, ins { 234 | text-decoration: none; 235 | } 236 | 237 | small { 238 | @include font-size(6, mobile, true, true, true); 239 | } 240 | 241 | b, 242 | strong { 243 | @include font-weight(semibold); 244 | } 245 | 246 | button, 247 | input, 248 | select, 249 | textarea, 250 | label { 251 | @include font-size(5, mobile, true, true); 252 | } 253 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/components/_buttons.scss: -------------------------------------------------------------------------------- 1 | .button { 2 | display: inline-flex; 3 | @include font-size(8, mobile, true, false, true); 4 | @if ( get-font-size(8, desktop) != get-font-size(8, mobile) ) { 5 | @include media( '>medium' ) { 6 | @include font-size(8, desktop, true, false, true); 7 | } 8 | } 9 | @include font-weight(semibold); 10 | line-height: 16px; 11 | text-decoration: none !important; 12 | text-transform: uppercase; 13 | background-color: color(bg, 3); 14 | color: color(typography, 1) !important; 15 | border: none; 16 | border-radius: 2px; 17 | cursor: pointer; 18 | justify-content: center; 19 | padding: 16px 32px; 20 | height: 48px; 21 | text-align: center; 22 | white-space: nowrap; 23 | 24 | &:hover { 25 | background: lighten(color(bg, 3), 1%); 26 | } 27 | 28 | &:active { 29 | outline: 0; 30 | } 31 | 32 | &::before { 33 | border-radius: 2px; 34 | } 35 | } 36 | 37 | .button-sm { 38 | padding: 8px 24px; 39 | height: 32px; 40 | } 41 | 42 | .button-primary { 43 | background: mix(color(primary, 1), color(primary, 2)); 44 | background: linear-gradient(65deg, color(primary, 1) 0, color(primary, 2) 100%); 45 | 46 | &:hover { 47 | background: lighten(mix(color(primary, 1), color(primary, 2)), 2%); 48 | background: linear-gradient(65deg, lighten(color(primary, 1), 2%) 0, lighten(color(primary, 2), 2%) 100%); 49 | } 50 | } 51 | 52 | .button-block { 53 | display: flex; 54 | } 55 | 56 | .button-block { 57 | display: flex; 58 | width: 100%; 59 | } 60 | 61 | @include media( '<=medium' ) { 62 | 63 | .button-wide-mobile { 64 | width: 100%; 65 | max-width: 280px; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/components/_forms.scss: -------------------------------------------------------------------------------- 1 | .input, 2 | .textarea { 3 | background-color: color(typography, 1); 4 | border-width: 1px; 5 | border-style: solid; 6 | border-color: color(bg, 3); 7 | border-radius: 2px; 8 | color: color(typography, 2); 9 | max-width: 100%; 10 | width: 100%; 11 | 12 | &::placeholder { 13 | color: color(typography, 3); 14 | } 15 | 16 | &::-ms-input-placeholder { 17 | color: color(typography, 3); 18 | } 19 | 20 | &:-ms-input-placeholder { 21 | color: color(typography, 3); 22 | } 23 | 24 | &:hover { 25 | border-color: darken(color(bg, 3), 5%); 26 | } 27 | 28 | &:active, 29 | &:focus { 30 | outline: none; 31 | border-color: color(bg, 3); 32 | } 33 | 34 | &[disabled] { 35 | cursor: not-allowed; 36 | background-color: color(bg, 2); 37 | border-color: color(bg, 2); 38 | } 39 | } 40 | 41 | .input { 42 | -moz-appearance: none; 43 | -webkit-appearance: none; 44 | @include font-size(7, mobile, true, false, true); 45 | @if ( get-font-size(7, desktop) != get-font-size(7, mobile) ) { 46 | @include media( '>medium' ) { 47 | @include font-size(7, desktop, true, false, true); 48 | } 49 | } 50 | line-height: 20px; 51 | padding: 13px 16px; 52 | height: 48px; 53 | box-shadow: none; 54 | 55 | .inline-input { 56 | display: inline; 57 | width: auto; 58 | } 59 | } 60 | 61 | .textarea { 62 | display: block; 63 | min-width: 100%; 64 | resize: vertical; 65 | 66 | .inline-textarea { 67 | display: inline; 68 | width: auto; 69 | } 70 | } 71 | 72 | .field-grouped { 73 | 74 | > .control { 75 | 76 | &:not(:last-child) { 77 | margin-bottom: 8px; 78 | } 79 | } 80 | } 81 | 82 | @include media( '>medium' ) { 83 | 84 | .field-grouped { 85 | display: flex; 86 | 87 | > .control { 88 | flex-shrink: 0; 89 | 90 | &.control-expanded { 91 | flex-grow: 1; 92 | flex-shrink: 1; 93 | } 94 | 95 | &:not(:last-child) { 96 | margin-bottom: 0; 97 | margin-right: 8px; 98 | } 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_cta.scss: -------------------------------------------------------------------------------- 1 | .cta { 2 | text-align: center; 3 | 4 | .section-inner { 5 | padding: 48px 16px; 6 | } 7 | 8 | .section-title { 9 | margin-bottom: 40px; 10 | } 11 | } 12 | 13 | .cta-inner { 14 | position: relative; 15 | background: color(bg, 1); 16 | overflow: hidden; 17 | 18 | &::before { 19 | content: ''; 20 | position: absolute; 21 | right: 98px; 22 | top: -117px; 23 | width: 160px; 24 | height: 187px; 25 | background-image: url('../images/cta-illustration.svg'); 26 | background-repeat: no-repeat; 27 | } 28 | 29 | > * { 30 | position: relative; /* To display elements above hero illustrations */ 31 | } 32 | } 33 | 34 | @include media( '>medium') { 35 | 36 | .cta { 37 | text-align: left; 38 | 39 | .section-inner { 40 | padding: 64px 32px; 41 | } 42 | 43 | .section-title { 44 | margin-bottom: 0; 45 | padding-right: 24px; 46 | } 47 | } 48 | 49 | .cta-inner { 50 | display: flex; 51 | align-items: center; 52 | justify-content: space-between; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_features.scss: -------------------------------------------------------------------------------- 1 | .features-wrap { 2 | display: flex; 3 | flex-wrap: wrap; 4 | justify-content: space-evenly; 5 | margin-right: -32px; 6 | margin-left: -32px; 7 | 8 | &:first-of-type { 9 | margin-top: -16px; 10 | } 11 | 12 | &:last-of-type { 13 | margin-bottom: -16px; 14 | } 15 | } 16 | 17 | .feature { 18 | padding: 16px 32px; 19 | width: 380px; 20 | max-width: 380px; 21 | flex-grow: 1; 22 | } 23 | 24 | .feature-inner { 25 | height: 100%; 26 | } 27 | 28 | .feature-icon { 29 | display: flex; 30 | justify-content: center; 31 | } 32 | 33 | @include media( '>medium' ) { 34 | 35 | .features-wrap { 36 | 37 | &:first-of-type { 38 | margin-top: -24px; 39 | } 40 | 41 | &:last-of-type { 42 | margin-bottom: -24px; 43 | } 44 | } 45 | 46 | .feature { 47 | padding: 32px 32px; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_footer.scss: -------------------------------------------------------------------------------- 1 | .site-footer { 2 | @include font-size(8, mobile, true, true, true); 3 | @if ( get-font-size(8, desktop) != get-font-size(8, mobile) ) { 4 | @include media( '>medium' ) { 5 | @include font-size(8, desktop, true, true, true); 6 | } 7 | } 8 | 9 | a { 10 | @include anchor-aspect(footer); 11 | } 12 | } 13 | 14 | .site-footer-inner { 15 | position: relative; /* To display all elements above the background color */ 16 | display: flex; 17 | flex-wrap: wrap; 18 | padding-top: 48px; 19 | padding-bottom: 48px; 20 | } 21 | 22 | .footer-brand, 23 | .footer-links, 24 | .footer-social-links, 25 | .footer-copyright { 26 | flex: none; 27 | width: 100%; 28 | display: inline-flex; 29 | justify-content: center; 30 | } 31 | 32 | .footer-brand, 33 | .footer-links, 34 | .footer-social-links { 35 | margin-bottom: 24px; 36 | } 37 | 38 | .footer-social-links { 39 | 40 | li { 41 | display: inline-flex; 42 | 43 | + li { 44 | margin-left: 16px; 45 | } 46 | 47 | a { 48 | padding: 8px; 49 | } 50 | } 51 | } 52 | 53 | .footer-links { 54 | 55 | li { 56 | 57 | + li { 58 | margin-left: 24px; 59 | } 60 | } 61 | } 62 | 63 | @include media( '>medium' ) { 64 | 65 | .site-footer { 66 | margin-top: 20px; 67 | } 68 | 69 | .site-footer-inner { 70 | justify-content: space-between; 71 | padding-top: 64px; 72 | padding-bottom: 64px; 73 | } 74 | 75 | .footer-brand, 76 | .footer-links, 77 | .footer-social-links, 78 | .footer-copyright { 79 | flex: 50%; 80 | } 81 | 82 | .footer-brand, 83 | .footer-copyright { 84 | justify-content: flex-start; 85 | } 86 | 87 | .footer-links, 88 | .footer-social-links { 89 | justify-content: flex-end; 90 | } 91 | 92 | .footer-links { 93 | order: 1; 94 | margin-bottom: 0; 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_header.scss: -------------------------------------------------------------------------------- 1 | .site-header { 2 | padding: 24px 0; 3 | } 4 | 5 | .site-header-inner { 6 | position: relative; /* To display all elements above the background color */ 7 | display: flex; 8 | justify-content: space-between; 9 | align-items: center; 10 | } 11 | 12 | .header-links { 13 | display: inline-flex; 14 | 15 | li { 16 | display: inline-flex; 17 | } 18 | 19 | a:not(.button) { 20 | @include font-size(7, mobile, true, true, true); 21 | @if ( get-font-size(7, desktop) != get-font-size(7, mobile) ) { 22 | @include media( '>medium' ) { 23 | @include font-size(7, desktop, true, true, true); 24 | } 25 | } 26 | @include font-weight(semibold); 27 | @include anchor-aspect(header); 28 | line-height: 16px; 29 | padding: 8px 24px; 30 | } 31 | } 32 | 33 | @include media( '>medium' ) { 34 | 35 | .site-header { 36 | position: relative; 37 | 38 | &::before { 39 | content: ''; 40 | position: absolute; 41 | top: 0; 42 | left: 0; 43 | width: 100%; 44 | height: 700px; 45 | background: color(bg, 3); 46 | background: linear-gradient(80deg, rgba(color(bg, 3), .5) 0%, rgba(color(bg, 3), 0) 100%); 47 | -webkit-transform-origin: 0; 48 | transform-origin: 0; 49 | -webkit-transform: skewY(-12deg); 50 | transform: skewY(-12deg); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_hero.scss: -------------------------------------------------------------------------------- 1 | .hero { 2 | text-align: center; 3 | padding-top: 48px; 4 | padding-bottom: 88px; 5 | } 6 | 7 | .hero-copy { 8 | position: relative; /* To display elements above hero illustrations */ 9 | z-index: 1; 10 | } 11 | 12 | .hero-cta { 13 | margin-bottom: 40px; 14 | } 15 | 16 | .hero-figure { 17 | position: relative; 18 | 19 | svg { 20 | width: 100%; 21 | height: auto; 22 | } 23 | 24 | &::before, 25 | &::after { 26 | content: ''; 27 | position: absolute; 28 | background-repeat: no-repeat; 29 | background-size: 100%; 30 | 31 | .has-animations & { 32 | opacity: 0; 33 | transition: opacity 2s ease; 34 | 35 | .anime-ready & { 36 | opacity: 1; 37 | } 38 | } 39 | } 40 | 41 | &::before { 42 | top: -57.8%; 43 | left: -1.3%; 44 | width: 152.84%; 45 | height: 178.78%; 46 | background-image: url('../images/hero-back-illustration.svg'); 47 | } 48 | 49 | &::after { 50 | top: -35.6%; 51 | left: 99.6%; 52 | width: 57.2%; 53 | height: 87.88%; 54 | background-image: url('../images/hero-top-illustration.svg'); 55 | } 56 | } 57 | 58 | .hero-figure-box { 59 | position: absolute; 60 | top: 0; 61 | will-change: transform; 62 | } 63 | 64 | .hero-figure-box-01, 65 | .hero-figure-box-02, 66 | .hero-figure-box-03, 67 | .hero-figure-box-04, 68 | .hero-figure-box-08, 69 | .hero-figure-box-09 { 70 | overflow: hidden; 71 | 72 | &::before { 73 | content: ''; 74 | position: absolute; 75 | top: 0; 76 | bottom: 0; 77 | left: 0; 78 | right: 0; 79 | transform-origin: 100% 100%; 80 | } 81 | } 82 | 83 | .hero-figure-box-01 { 84 | left: 103.2%; 85 | top: 41.9%; 86 | width: 28.03%; 87 | height: 37.37%; 88 | background: linear-gradient(to left top, #00BFFB, rgba(#00BFFB, 0)); 89 | transform: rotateZ(45deg); 90 | 91 | &::before { 92 | background: linear-gradient(to left, color(bg, 1) 0%, rgba(color(bg, 1), 0) 60%); 93 | transform: rotateZ(45deg) scale(1.5); 94 | } 95 | } 96 | 97 | .hero-figure-box-02 { 98 | left: 61.3%; 99 | top: 64.1%; 100 | width: 37.87%; 101 | height: 50.50%; 102 | background: linear-gradient(to left top, color(primary, 1), rgba(color(primary, 1), 0)); 103 | transform: rotateZ(-45deg); 104 | 105 | &::before { 106 | background: linear-gradient(to top, color(bg, 1) 0%, rgba(color(bg, 1), 0) 60%); 107 | transform: rotateZ(-45deg) scale(1.5); 108 | } 109 | } 110 | 111 | .hero-figure-box-03 { 112 | left: 87.7%; 113 | top: -56.8%; 114 | width: 56.81%; 115 | height: 75.75%; 116 | background: linear-gradient(to left top, #00BFFB, rgba(#00BFFB, 0)); 117 | 118 | &::before { 119 | background: linear-gradient(to left, color(bg, 1) 0%, rgba(color(bg, 1), 0) 60%); 120 | transform: rotateZ(45deg) scale(1.5); 121 | } 122 | } 123 | 124 | .hero-figure-box-04 { 125 | left: 54.9%; 126 | top: -8%; 127 | width: 45.45%; 128 | height: 60.60%; 129 | background: linear-gradient(to left top, color(primary, 1), rgba(color(primary, 1), 0)); 130 | transform: rotateZ(-135deg); 131 | 132 | &::before { 133 | background: linear-gradient(to top, rgba(color(typography, 1), .24) 0%, rgba(color(typography, 1), 0) 60%); 134 | transform: rotateZ(-45deg) scale(1.5); 135 | } 136 | } 137 | 138 | .hero-figure-box-05, 139 | .hero-figure-box-06, 140 | .hero-figure-box-07 { 141 | background-color: color(bg, 3); 142 | box-shadow: -20px 32px 64px rgba(#000, .25); 143 | } 144 | 145 | .hero-figure-box-05 { 146 | left: 17.4%; 147 | top: 13.3%; 148 | width: 64%; 149 | height: 73.7%; 150 | transform: perspective(500px) rotateY(-15deg) rotateX(8deg) rotateZ(-1deg); 151 | } 152 | 153 | .hero-figure-box-06 { 154 | left: 65.5%; 155 | top: 6.3%; 156 | width: 30.3%; 157 | height: 40.4%; 158 | transform: rotateZ(20deg); 159 | } 160 | 161 | .hero-figure-box-07 { 162 | left: 1.9%; 163 | top: 42.4%; 164 | width: 12.12%; 165 | height: 16.16%; 166 | transform: rotateZ(20deg); 167 | } 168 | 169 | .hero-figure-box-08 { 170 | left: 27.1%; 171 | top: 81.6%; 172 | width: 19.51%; 173 | height: 26.01%; 174 | background: color(primary, 1); 175 | transform: rotateZ(-22deg); 176 | 177 | &::before { 178 | background: linear-gradient(to left, rgba(color(typography, 1), 0) 0%, rgba(color(typography, 1), .48) 100%); 179 | transform: rotateZ(45deg) scale(1.5); 180 | } 181 | } 182 | 183 | .hero-figure-box-09 { 184 | left: 42.6%; 185 | top: -17.9%; 186 | width: 6.63%; 187 | height: 8.83%; 188 | background: #00BFFB; 189 | transform: rotateZ(-52deg); 190 | 191 | &::before { 192 | background: linear-gradient(to left, rgba(color(typography, 1), 0) 0%, rgba(color(typography, 1), .64) 100%); 193 | transform: rotateZ(45deg) scale(1.5); 194 | } 195 | } 196 | 197 | .hero-figure-box-10 { 198 | left: -3.8%; 199 | top: 4.3%; 200 | width: 3.03%; 201 | height: 4.04%; 202 | background: rgba(#00BFFB, .32); 203 | transform: rotateZ(-50deg); 204 | } 205 | 206 | @include media( '<=medium' ) { 207 | 208 | .hero-cta { 209 | max-width: 280px; 210 | margin-left: auto; 211 | margin-right: auto; 212 | 213 | .button { 214 | display: flex; 215 | 216 | + .button { 217 | margin-top: 16px; 218 | } 219 | } 220 | } 221 | 222 | .hero-figure::after, 223 | .hero-figure-box-03, 224 | .hero-figure-box-04, 225 | .hero-figure-box-09 { 226 | display: none; 227 | } 228 | } 229 | 230 | @include media( '>medium' ) { 231 | 232 | .hero { 233 | text-align: left; 234 | padding-top: 64px; 235 | padding-bottom: 88px; 236 | } 237 | 238 | .hero-inner { 239 | /* Split hero in two half */ 240 | display: flex; 241 | justify-content: space-between; 242 | align-items: center; 243 | } 244 | 245 | .hero-copy { 246 | padding-right: 64px; 247 | min-width: 552px; 248 | width: 552px; 249 | } 250 | 251 | .hero-cta { 252 | margin: 0; 253 | 254 | .button { 255 | min-width: 170px; 256 | 257 | &:first-child { 258 | margin-right: 16px; 259 | } 260 | } 261 | } 262 | 263 | .hero-figure { 264 | 265 | svg { 266 | width: auto; 267 | } 268 | } 269 | } 270 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_main.scss: -------------------------------------------------------------------------------- 1 | .is-boxed { 2 | background: color(bg, 3); 3 | } 4 | 5 | .body-wrap { 6 | background: color(bg, 2); 7 | overflow: hidden; 8 | /* Sticky footer */ 9 | display: flex; 10 | flex-direction: column; 11 | min-height: 100vh; 12 | } 13 | 14 | .boxed-container { 15 | max-width: 1440px; 16 | margin: 0 auto; 17 | @include shadow; 18 | mix-blend-mode: normal; 19 | } 20 | 21 | main { 22 | flex: 1 0 auto; 23 | } 24 | 25 | .section-inner { 26 | position: relative; /* To always display inner elements above pseudo decorative stuff */ 27 | padding-top: 48px; 28 | padding-bottom: 48px; 29 | } 30 | 31 | @include media( '>medium' ) { 32 | 33 | .section-inner { 34 | padding-top: 88px; 35 | padding-bottom: 88px; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/layout/_pricing.scss: -------------------------------------------------------------------------------- 1 | .pricing-header { 2 | margin-bottom: 48px; 3 | } 4 | 5 | .pricing-tables-wrap { 6 | display: flex; 7 | flex-wrap: wrap; 8 | justify-content: center; 9 | margin-right: -12px; 10 | margin-left: -12px; 11 | 12 | &:first-child { 13 | margin-top: -12px; 14 | } 15 | 16 | &:last-child { 17 | margin-bottom: -12px; 18 | } 19 | } 20 | 21 | .pricing-table { 22 | position: relative; 23 | padding: 12px; 24 | width: 368px; 25 | max-width: 368px; 26 | flex-grow: 1; 27 | 28 | &::before { 29 | content: ''; 30 | position: absolute; 31 | left: 50%; 32 | width: 200%; 33 | max-width: 200%; 34 | height: 435px; 35 | background-repeat: no-repeat; 36 | background-position: center; 37 | background-size: 100%; 38 | bottom: 18.8%; 39 | -webkit-transform: translateX(-50%); 40 | transform: translateX(-50%); 41 | background-image: url('../images/pricing-illustration.svg'); 42 | } 43 | } 44 | 45 | .pricing-table-header, 46 | .pricing-table-features-title, 47 | .pricing-table-features li { 48 | border-bottom: 1px solid rgba(color(typography, 2), .24); 49 | } 50 | 51 | .pricing-table-inner { 52 | position: relative; 53 | display: flex; 54 | flex-wrap: wrap; 55 | background: color(bg, 4); 56 | padding: 24px; 57 | height: 100%; 58 | 59 | > * { 60 | position: relative; /* To display all elements above the box with shadow */ 61 | width: 100%; 62 | } 63 | 64 | &::before { 65 | content: ''; 66 | position: absolute; 67 | top: 0; 68 | right: 0; 69 | bottom: 0; 70 | left: 0; 71 | @include shadow; 72 | } 73 | } 74 | 75 | .pricing-table-price { 76 | @if ( get-font-family(heading) != get-font-family(base) ) { 77 | @include font-family(heading); 78 | } 79 | } 80 | 81 | .pricing-table-price-currency { 82 | color: color(typography, 2); 83 | } 84 | 85 | .pricing-table-features-title { 86 | color: color(typography, 1); 87 | @include font-weight(bold); 88 | } 89 | 90 | .pricing-table-features { 91 | 92 | li { 93 | display: flex; 94 | align-items: center; 95 | padding: 14px 0; 96 | 97 | &::before { 98 | content: ''; 99 | width: 16px; 100 | height: 12px; 101 | margin-right: 16px; 102 | background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUuNiA2LjRMMS42IDQgMCA1LjYgNS42IDEyIDE2IDEuNiAxNC40IDB6IiBmaWxsPSIjMDJDQkIxIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); 103 | background-repeat: no-repeat; 104 | } 105 | } 106 | } 107 | 108 | .pricing-table-cta { 109 | align-self: flex-end; 110 | } 111 | 112 | @include media( '>medium' ) { 113 | 114 | .pricing { 115 | 116 | .section-paragraph { 117 | padding-left: 90px; 118 | padding-right: 90px; 119 | } 120 | } 121 | 122 | .pricing-header { 123 | margin-bottom: 52px; 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /NewMedico/src/main/webapp/src/scss/style.scss: -------------------------------------------------------------------------------- 1 | /*-------------------------------------------------------------- 2 | # Variables, functions and mixins 3 | --------------------------------------------------------------*/ 4 | @import "abstracts/variables", 5 | "abstracts/functions", 6 | "abstracts/mixins", 7 | 'abstracts/include-media'; 8 | 9 | /*-------------------------------------------------------------- 10 | 1.0 Normalize 11 | * normalize.css v7.0.0 | MIT License 12 | * github.com/necolas/normalize.css 13 | --------------------------------------------------------------*/ 14 | @import "normalize"; 15 | 16 | /*-------------------------------------------------------------- 17 | # Base 18 | --------------------------------------------------------------*/ 19 | @import "base/base"; 20 | 21 | /*-------------------------------------------------------------- 22 | # Typography 23 | --------------------------------------------------------------*/ 24 | @import "base/typography"; 25 | 26 | /*-------------------------------------------------------------- 27 | # Helpers 28 | --------------------------------------------------------------*/ 29 | @import "base/helpers"; 30 | 31 | /*-------------------------------------------------------------- 32 | # Forms 33 | --------------------------------------------------------------*/ 34 | @import "components/forms"; 35 | 36 | /*-------------------------------------------------------------- 37 | # Buttons 38 | --------------------------------------------------------------*/ 39 | @import "components/buttons"; 40 | 41 | /*-------------------------------------------------------------- 42 | # Header 43 | --------------------------------------------------------------*/ 44 | @import "layout/header"; 45 | 46 | /*-------------------------------------------------------------- 47 | # Hero 48 | --------------------------------------------------------------*/ 49 | @import "layout/hero"; 50 | 51 | /*-------------------------------------------------------------- 52 | # Features 53 | --------------------------------------------------------------*/ 54 | @import "layout/features"; 55 | 56 | /*-------------------------------------------------------------- 57 | # Pricing 58 | --------------------------------------------------------------*/ 59 | @import "layout/pricing"; 60 | 61 | /*-------------------------------------------------------------- 62 | # CTA 63 | --------------------------------------------------------------*/ 64 | @import "layout/cta"; 65 | 66 | /*-------------------------------------------------------------- 67 | # Site content 68 | --------------------------------------------------------------*/ 69 | @import "layout/main"; 70 | 71 | /*-------------------------------------------------------------- 72 | # Footer 73 | --------------------------------------------------------------*/ 74 | @import "layout/footer"; 75 | 76 | /*------------------------------------------------------------- 77 | # Form 78 | -------------------------------------------------------------*/ 79 | .form{ 80 | background:white; 81 | width:500px; 82 | max-width:100%; 83 | margin:auto; 84 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Projects-on-java 2 | JAVA IO PROJECTS 3 | LOGIN AND USER DETAILS ARE FEELING BY ADMIN 4 | --------------------------------------------------------------------------------