dave
This commit is contained in:
parent
8d558b2070
commit
4a312f7921
6
502.html
6
502.html
@ -129,8 +129,8 @@
|
|||||||
<p class="tip">The application is currently launching. The page will automatically refresh once site is
|
<p class="tip">The application is currently launching. The page will automatically refresh once site is
|
||||||
available.</p>
|
available.</p>
|
||||||
<div class="project-info">
|
<div class="project-info">
|
||||||
<h2>App Draft</h2>
|
<h2>manhwa Kai</h2>
|
||||||
<p>Komikku-like web manga reader with library management, downloads, trackers sync, themes, and advanced reading modes.</p>
|
<p>manhwa Kai - Your ultimate web reader for manga, manhwa, and manhua.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="loader-container">
|
<div class="loader-container">
|
||||||
<img src="https://flatlogic.com/blog/wp-content/uploads/2025/05/logo-bot-1.png" alt="App Logo"
|
<img src="https://flatlogic.com/blog/wp-content/uploads/2025/05/logo-bot-1.png" alt="App Logo"
|
||||||
@ -184,4 +184,4 @@
|
|||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
# App Draft
|
# manhwa Kai
|
||||||
|
|
||||||
|
|
||||||
## This project was generated by [Flatlogic Platform](https://flatlogic.com).
|
## This project was generated by [Flatlogic Platform](https://flatlogic.com).
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
#App Draft - template backend,
|
#manhwa Kai - template backend,
|
||||||
|
|
||||||
#### Run App on local machine:
|
#### Run App on local machine:
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "appdraft",
|
"name": "appdraft",
|
||||||
"description": "App Draft - template backend",
|
"description": "manhwa Kai - template backend",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "npm run db:migrate && npm run db:seed && npm run watch",
|
"start": "npm run db:migrate && npm run db:seed && npm run watch",
|
||||||
"lint": "eslint . --ext .js",
|
"lint": "eslint . --ext .js",
|
||||||
|
|||||||
@ -1,6 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
@ -39,7 +36,7 @@ const config = {
|
|||||||
},
|
},
|
||||||
uploadDir: os.tmpdir(),
|
uploadDir: os.tmpdir(),
|
||||||
email: {
|
email: {
|
||||||
from: 'App Draft <app@flatlogic.app>',
|
from: 'manhwa Kai <app@flatlogic.app>',
|
||||||
host: 'email-smtp.us-east-1.amazonaws.com',
|
host: 'email-smtp.us-east-1.amazonaws.com',
|
||||||
port: 587,
|
port: 587,
|
||||||
auth: {
|
auth: {
|
||||||
@ -76,4 +73,4 @@ config.swaggerUrl = `${config.swaggerUI}${config.swaggerPort}`;
|
|||||||
config.uiUrl = `${config.hostUI}${config.portUI ? `:${config.portUI}` : ``}/#`;
|
config.uiUrl = `${config.hostUI}${config.portUI ? `:${config.portUI}` : ``}/#`;
|
||||||
config.backUrl = `${config.hostUI}${config.portUI ? `:${config.portUI}` : ``}`;
|
config.backUrl = `${config.hostUI}${config.portUI ? `:${config.portUI}` : ``}`;
|
||||||
|
|
||||||
module.exports = config;
|
module.exports = config;
|
||||||
@ -81,7 +81,7 @@ const SourcesData = [
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
"name": "Komikku Demo Catalog",
|
"name": "manhwa Kai Demo Catalog",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -77,8 +77,8 @@ const options = {
|
|||||||
openapi: "3.0.0",
|
openapi: "3.0.0",
|
||||||
info: {
|
info: {
|
||||||
version: "1.0.0",
|
version: "1.0.0",
|
||||||
title: "App Draft",
|
title: "manhwa Kai",
|
||||||
description: "App Draft Online REST API for Testing and Prototyping application. You can perform all major operations with your entities - create, delete and etc.",
|
description: "manhwa Kai REST API for manga reading platform. You can perform all major operations with your entities - create, delete and etc.",
|
||||||
},
|
},
|
||||||
servers: [
|
servers: [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
const errors = {
|
const errors = {
|
||||||
app: {
|
app: {
|
||||||
title: 'App Draft',
|
title: 'manhwa Kai',
|
||||||
},
|
},
|
||||||
|
|
||||||
auth: {
|
auth: {
|
||||||
@ -101,4 +101,4 @@ const errors = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = errors;
|
module.exports = errors;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
# App Draft
|
# manhwa Kai
|
||||||
|
|
||||||
## This project was generated by Flatlogic Platform.
|
## This project was generated by Flatlogic Platform.
|
||||||
## Install
|
## Install
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export default function AsideMenuLayer({ menu, className = '', ...props }: Props
|
|||||||
>
|
>
|
||||||
<div className="text-center flex-1 lg:text-left lg:pl-6 xl:text-center xl:pl-0">
|
<div className="text-center flex-1 lg:text-left lg:pl-6 xl:text-center xl:pl-0">
|
||||||
|
|
||||||
<b className="font-black">App Draft</b>
|
<b className="font-black">manhwa Kai</b>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -60,4 +60,4 @@ export default function AsideMenuLayer({ menu, className = '', ...props }: Props
|
|||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -8,8 +8,8 @@ export const localStorageStyleKey = 'style'
|
|||||||
|
|
||||||
export const containerMaxW = 'xl:max-w-full xl:mx-auto 2xl:mx-20'
|
export const containerMaxW = 'xl:max-w-full xl:mx-auto 2xl:mx-20'
|
||||||
|
|
||||||
export const appTitle = 'created by Flatlogic generator!'
|
export const appTitle = 'manhwa Kai'
|
||||||
|
|
||||||
export const getPageTitle = (currentPageTitle: string) => `${currentPageTitle} — ${appTitle}`
|
export const getPageTitle = (currentPageTitle: string) => `${currentPageTitle} — ${appTitle}`
|
||||||
|
|
||||||
export const tinyKey = process.env.NEXT_PUBLIC_TINY_KEY || ''
|
export const tinyKey = process.env.NEXT_PUBLIC_TINY_KEY || ''
|
||||||
@ -149,8 +149,8 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
|
|||||||
setStepsEnabled(false);
|
setStepsEnabled(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const title = 'App Draft'
|
const title = 'manhwa Kai'
|
||||||
const description = "Komikku-like web manga reader with library management, downloads, trackers sync, themes, and advanced reading modes."
|
const description = "manhwa Kai - Your ultimate web reader for manga, manhwa, and manhua."
|
||||||
const url = "https://flatlogic.com/"
|
const url = "https://flatlogic.com/"
|
||||||
const image = "https://project-screens.s3.amazonaws.com/screenshots/38203/app-hero-20260205-034702.png"
|
const image = "https://project-screens.s3.amazonaws.com/screenshots/38203/app-hero-20260205-034702.png"
|
||||||
const imageWidth = '1920'
|
const imageWidth = '1920'
|
||||||
@ -164,7 +164,7 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
|
|||||||
<meta name="description" content={description} />
|
<meta name="description" content={description} />
|
||||||
|
|
||||||
<meta property="og:url" content={url} />
|
<meta property="og:url" content={url} />
|
||||||
<meta property="og:site_name" content="https://flatlogic.com/" />
|
<meta property="og:site_name" content="manhwa Kai" />
|
||||||
<meta property="og:title" content={title} />
|
<meta property="og:title" content={title} />
|
||||||
<meta property="og:description" content={description} />
|
<meta property="og:description" content={description} />
|
||||||
<meta property="og:image" content={image} />
|
<meta property="og:image" content={image} />
|
||||||
@ -198,4 +198,4 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default appWithTranslation(MyApp);
|
export default appWithTranslation(MyApp);
|
||||||
@ -10,7 +10,6 @@ import {
|
|||||||
mdiThemeLightDark,
|
mdiThemeLightDark,
|
||||||
mdiDownload,
|
mdiDownload,
|
||||||
mdiCellphoneMarker,
|
mdiCellphoneMarker,
|
||||||
mdiTranslate,
|
|
||||||
mdiShieldCheck,
|
mdiShieldCheck,
|
||||||
mdiGithub,
|
mdiGithub,
|
||||||
} from '@mdi/js';
|
} from '@mdi/js';
|
||||||
@ -102,7 +101,7 @@ export default function LandingPage() {
|
|||||||
return (
|
return (
|
||||||
<div className="min-h-screen bg-slate-900 text-slate-100 font-sans selection:bg-indigo-500 selection:text-white">
|
<div className="min-h-screen bg-slate-900 text-slate-100 font-sans selection:bg-indigo-500 selection:text-white">
|
||||||
<Head>
|
<Head>
|
||||||
<title>{getPageTitle('Komikku - Your Ultimate Manga Reader')}</title>
|
<title>{getPageTitle('Your Ultimate Manga Reader')}</title>
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
{/* Navigation */}
|
{/* Navigation */}
|
||||||
@ -117,7 +116,7 @@ export default function LandingPage() {
|
|||||||
<BaseIcon path={mdiBookOpenPageVariant} className="text-white" size={24} />
|
<BaseIcon path={mdiBookOpenPageVariant} className="text-white" size={24} />
|
||||||
</div>
|
</div>
|
||||||
<span className="text-2xl font-bold tracking-tight bg-clip-text text-transparent bg-gradient-to-r from-white to-slate-400">
|
<span className="text-2xl font-bold tracking-tight bg-clip-text text-transparent bg-gradient-to-r from-white to-slate-400">
|
||||||
Komikku
|
manhwa Kai
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -301,20 +300,20 @@ export default function LandingPage() {
|
|||||||
<div className="w-8 h-8 bg-indigo-600 rounded-lg flex items-center justify-center">
|
<div className="w-8 h-8 bg-indigo-600 rounded-lg flex items-center justify-center">
|
||||||
<BaseIcon path={mdiBookOpenPageVariant} className="text-white" size={18} />
|
<BaseIcon path={mdiBookOpenPageVariant} className="text-white" size={18} />
|
||||||
</div>
|
</div>
|
||||||
<span className="text-xl font-bold tracking-tight">Komikku</span>
|
<span className="text-xl font-bold tracking-tight">manhwa Kai</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex flex-wrap justify-center gap-8 text-sm text-slate-500 font-medium mb-8 md:mb-0">
|
<div className="flex flex-wrap justify-center gap-8 text-sm text-slate-500 font-medium mb-8 md:mb-0">
|
||||||
<Link href="/privacy-policy" className="hover:text-white transition-colors">Privacy Policy</Link>
|
<Link href="/privacy-policy" className="hover:text-white transition-colors">Privacy Policy</Link>
|
||||||
<Link href="/terms-of-use" className="hover:text-white transition-colors">Terms of Use</Link>
|
<Link href="/terms-of-use" className="hover:text-white transition-colors">Terms of Use</Link>
|
||||||
<a href="https://github.com/komikku-app/komikku" target="_blank" rel="noreferrer" className="hover:text-white transition-colors flex items-center">
|
<a href="#" className="hover:text-white transition-colors flex items-center">
|
||||||
<BaseIcon path={mdiGithub} size={16} className="mr-2" />
|
<BaseIcon path={mdiGithub} size={16} className="mr-2" />
|
||||||
Source Code
|
Source Code
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="text-sm text-slate-500">
|
<div className="text-sm text-slate-500">
|
||||||
© 2026 Komikku. All rights reserved.
|
© 2026 manhwa Kai. All rights reserved.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import type { ReactElement } from 'react';
|
import type { ReactElement } from 'react';
|
||||||
import Head from 'next/head';
|
import Head from 'next/head';
|
||||||
@ -44,7 +42,7 @@ export default function Login() {
|
|||||||
password: '09f1e4eb',
|
password: '09f1e4eb',
|
||||||
remember: true })
|
remember: true })
|
||||||
|
|
||||||
const title = 'App Draft'
|
const title = 'manhwa Kai'
|
||||||
|
|
||||||
// Fetch Pexels image/video
|
// Fetch Pexels image/video
|
||||||
useEffect( () => {
|
useEffect( () => {
|
||||||
@ -273,4 +271,4 @@ export default function Login() {
|
|||||||
|
|
||||||
Login.getLayout = function getLayout(page: ReactElement) {
|
Login.getLayout = function getLayout(page: ReactElement) {
|
||||||
return <LayoutGuest>{page}</LayoutGuest>;
|
return <LayoutGuest>{page}</LayoutGuest>;
|
||||||
};
|
};
|
||||||
@ -5,7 +5,7 @@ import LayoutGuest from '../layouts/Guest';
|
|||||||
import { getPageTitle } from '../config';
|
import { getPageTitle } from '../config';
|
||||||
|
|
||||||
export default function PrivacyPolicy() {
|
export default function PrivacyPolicy() {
|
||||||
const title = 'App Draft'
|
const title = 'manhwa Kai'
|
||||||
const [projectUrl, setProjectUrl] = useState('');
|
const [projectUrl, setProjectUrl] = useState('');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -289,4 +289,4 @@ export default function PrivacyPolicy() {
|
|||||||
|
|
||||||
PrivacyPolicy.getLayout = function getLayout(page: ReactElement) {
|
PrivacyPolicy.getLayout = function getLayout(page: ReactElement) {
|
||||||
return <LayoutGuest>{page}</LayoutGuest>;
|
return <LayoutGuest>{page}</LayoutGuest>;
|
||||||
};
|
};
|
||||||
@ -39,7 +39,7 @@ export default function Register() {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Head>
|
<Head>
|
||||||
<title>{getPageTitle('Login')}</title>
|
<title>{getPageTitle('Register')}</title>
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
<SectionFullScreen bg='violet'>
|
<SectionFullScreen bg='violet'>
|
||||||
@ -89,4 +89,4 @@ export default function Register() {
|
|||||||
|
|
||||||
Register.getLayout = function getLayout(page: ReactElement) {
|
Register.getLayout = function getLayout(page: ReactElement) {
|
||||||
return <LayoutGuest>{page}</LayoutGuest>;
|
return <LayoutGuest>{page}</LayoutGuest>;
|
||||||
};
|
};
|
||||||
@ -5,7 +5,7 @@ import LayoutGuest from '../layouts/Guest';
|
|||||||
import { getPageTitle } from '../config';
|
import { getPageTitle } from '../config';
|
||||||
|
|
||||||
export default function PrivacyPolicy() {
|
export default function PrivacyPolicy() {
|
||||||
const title = 'App Draft';
|
const title = 'manhwa Kai';
|
||||||
const [projectUrl, setProjectUrl] = useState('');
|
const [projectUrl, setProjectUrl] = useState('');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -203,4 +203,4 @@ export default function PrivacyPolicy() {
|
|||||||
|
|
||||||
PrivacyPolicy.getLayout = function getLayout(page: ReactElement) {
|
PrivacyPolicy.getLayout = function getLayout(page: ReactElement) {
|
||||||
return <LayoutGuest>{page}</LayoutGuest>;
|
return <LayoutGuest>{page}</LayoutGuest>;
|
||||||
};
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user