├── public ├── _redirects ├── favicon.ico └── image │ ├── allah.webp │ ├── quran.webp │ ├── hadits.webp │ ├── lighter.webp │ ├── muhammad.webp │ ├── muslim.webp │ ├── prayer.webp │ ├── praying.webp │ └── tasbih.webp ├── src ├── playground.js ├── style.css ├── main.js ├── components │ ├── home │ │ ├── Footer.vue │ │ ├── CardMenu.vue │ │ ├── Main.vue │ │ ├── Header.vue │ │ └── PrayerSchedule.vue │ ├── reusable │ │ ├── DefaultContainer.vue │ │ ├── NotFoundComponent.vue │ │ ├── ScrollOnTop.vue │ │ ├── HeaderPage.vue │ │ └── Accordion.vue │ └── quran │ │ ├── TafsirSurah.vue │ │ ├── ListCardSurah.vue │ │ └── ListCardAyat.vue ├── pages │ ├── Home.vue │ ├── NotFound.vue │ ├── Quran.vue │ ├── DailyPrayer.vue │ ├── TahlilReading.vue │ ├── Bookmark.vue │ ├── TheHadith.vue │ ├── DetailSurah.vue │ └── TheHadithDetail.vue ├── App.vue ├── router │ └── index.js └── assets │ └── search-not-found.svg ├── .vscode └── extensions.json ├── postcss.config.js ├── vite.config.js ├── index.html ├── tailwind.config.js ├── .gitignore ├── package.json └── README.md /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /src/playground.js: -------------------------------------------------------------------------------- 1 | // abu-dawud => Abu Dawud 2 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/image/allah.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/allah.webp -------------------------------------------------------------------------------- /public/image/quran.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/quran.webp -------------------------------------------------------------------------------- /public/image/hadits.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/hadits.webp -------------------------------------------------------------------------------- /public/image/lighter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/lighter.webp -------------------------------------------------------------------------------- /public/image/muhammad.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/muhammad.webp -------------------------------------------------------------------------------- /public/image/muslim.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/muslim.webp -------------------------------------------------------------------------------- /public/image/prayer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/prayer.webp -------------------------------------------------------------------------------- /public/image/praying.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/praying.webp -------------------------------------------------------------------------------- /public/image/tasbih.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sastra12/islamic-app/HEAD/public/image/tasbih.webp -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | import router from "./router/index" 5 | 6 | import "./style.css" 7 | 8 | const app = createApp(App) 9 | 10 | app.use(router) 11 | app.mount('#app') 12 | -------------------------------------------------------------------------------- /src/components/home/Footer.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /src/components/home/CardMenu.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /src/components/reusable/DefaultContainer.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | plugins: [vue()], 9 | resolve: { 10 | alias: { 11 | '@': fileURLToPath(new URL('./src', import.meta.url)) 12 | } 13 | } 14 | }) 15 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Islamic App 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./index.html", 5 | "./src/**/*.{vue,js,ts,jsx,tsx}", 6 | ], 7 | darkMode: 'class', 8 | theme: { 9 | fontFamily: { 10 | 'sans': ['Poppins', 'sans-serif'], 11 | }, 12 | screens: { 13 | header: '320px' 14 | }, 15 | extend: {}, 16 | }, 17 | plugins: [], 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /src/components/reusable/NotFoundComponent.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /src/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "islamic-app", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "@vueuse/core": "^9.13.0", 12 | "axios": "^1.3.4", 13 | "moment": "^2.29.4", 14 | "vue": "^3.2.47", 15 | "vue-router": "^4.1.6" 16 | }, 17 | "devDependencies": { 18 | "@vitejs/plugin-vue": "^4.0.0", 19 | "autoprefixer": "^10.4.14", 20 | "postcss": "^8.4.21", 21 | "tailwindcss": "^3.2.7", 22 | "vite": "^4.1.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 13 | 36 | -------------------------------------------------------------------------------- /src/pages/NotFound.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 24 | 25 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/components/reusable/ScrollOnTop.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 32 | -------------------------------------------------------------------------------- /src/pages/Quran.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from "vue-router"; 2 | 3 | import Home from "../pages/Home.vue"; 4 | 5 | const routes = [ 6 | { 7 | path: "/", 8 | component: Home, 9 | props: true, 10 | }, 11 | // Card Menu 12 | { path: "/quran", component: () => import("../pages/Quran.vue") }, 13 | { path: "/surat/:id", component: () => import("../pages/DetailSurah.vue") }, 14 | { path: "/doa-harian", component: () => import("../pages/DailyPrayer.vue") }, 15 | { 16 | path: "/bacaan-tahlil", 17 | component: () => import("../pages/TahlilReading.vue"), 18 | }, 19 | { 20 | path: "/hadith", 21 | component: () => import("../pages/TheHadith.vue"), 22 | }, 23 | { 24 | path: "/hadith/:slug", 25 | name: "HadithResult", 26 | component: () => import("../pages/TheHadithDetail.vue"), 27 | }, 28 | { 29 | path: "/bookmark", 30 | component: () => import("../pages/Bookmark.vue"), 31 | }, 32 | { 33 | path: "/:pathMatch(.*)*", 34 | component: () => import("../pages/NotFound.vue"), 35 | }, 36 | ]; 37 | 38 | const router = createRouter({ 39 | history: createWebHistory(), 40 | routes, 41 | }); 42 | 43 | export default router; 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # islamic-app 2 | 3 | Islamic web application is a website that has several features such as the Quran, prayer schedules various locations in indonesia, Asmaul Husna, Daily Prayers, Hadith and Tahlil Readings. I created this simple website using Vue.JS and Tailwind CSS as well as utilizing public APIs 4 | 5 | ## Project Screenshots: 6 | 7 | ![ss islamic app 1](https://user-images.githubusercontent.com/54954176/230027238-1f77e60e-81ae-46fe-b914-2a0cdc44ba1a.png) 8 | 9 | ![ss islamic app 2](https://user-images.githubusercontent.com/54954176/230027351-0a228365-dcbb-4073-8550-ba9218c1bfd8.png) 10 | 11 | ![ss islamic app 3](https://user-images.githubusercontent.com/54954176/230027400-e90fb715-936a-4dea-9c74-6a3152d2ad24.png) 12 | 13 | ## Technology used 14 | 19 | 20 | ## Project Setup 21 | 22 | ```sh 23 | npm install 24 | ``` 25 | 26 | ### Compile and Hot-Reload for Development 27 | 28 | ```sh 29 | npm run dev 30 | ``` 31 | 32 | ### Compile and Minify for Production 33 | 34 | ```sh 35 | npm run build 36 | ``` 37 | -------------------------------------------------------------------------------- /src/components/reusable/HeaderPage.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 50 | -------------------------------------------------------------------------------- /src/components/reusable/Accordion.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 62 | 63 | -------------------------------------------------------------------------------- /src/components/home/Main.vue: -------------------------------------------------------------------------------- 1 | 63 | 64 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /src/pages/DailyPrayer.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 84 | -------------------------------------------------------------------------------- /src/pages/TahlilReading.vue: -------------------------------------------------------------------------------- 1 | 38 | 82 | -------------------------------------------------------------------------------- /src/pages/Bookmark.vue: -------------------------------------------------------------------------------- 1 | 42 | 43 | 77 | -------------------------------------------------------------------------------- /src/components/home/Header.vue: -------------------------------------------------------------------------------- 1 | 65 | 66 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /src/components/quran/TafsirSurah.vue: -------------------------------------------------------------------------------- 1 | 38 | 39 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /src/pages/TheHadith.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 71 | -------------------------------------------------------------------------------- /src/components/quran/ListCardSurah.vue: -------------------------------------------------------------------------------- 1 | 70 | 71 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /src/pages/DetailSurah.vue: -------------------------------------------------------------------------------- 1 | 80 | 81 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /src/components/quran/ListCardAyat.vue: -------------------------------------------------------------------------------- 1 | 47 | 48 | 129 | 130 | 135 | -------------------------------------------------------------------------------- /src/pages/TheHadithDetail.vue: -------------------------------------------------------------------------------- 1 | 83 | 84 | 177 | -------------------------------------------------------------------------------- /src/components/home/PrayerSchedule.vue: -------------------------------------------------------------------------------- 1 | 132 | 133 | 253 | 254 | 255 | -------------------------------------------------------------------------------- /src/assets/search-not-found.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | 182 | --------------------------------------------------------------------------------