This commit is contained in:
Flatlogic Bot 2026-02-05 20:27:35 +00:00
parent 8d558b2070
commit 4a312f7921
17 changed files with 35 additions and 41 deletions

View File

@ -129,8 +129,8 @@
<p class="tip">The application is currently launching. The page will automatically refresh once site is
available.</p>
<div class="project-info">
<h2>App Draft</h2>
<p>Komikku-like web manga reader with library management, downloads, trackers sync, themes, and advanced reading modes.</p>
<h2>manhwa Kai</h2>
<p>manhwa Kai - Your ultimate web reader for manga, manhwa, and manhua.</p>
</div>
<div class="loader-container">
<img src="https://flatlogic.com/blog/wp-content/uploads/2025/05/logo-bot-1.png" alt="App Logo"
@ -184,4 +184,4 @@
</script>
</body>
</html>
</html>

View File

@ -1,6 +1,6 @@
# App Draft
# manhwa Kai
## This project was generated by [Flatlogic Platform](https://flatlogic.com).

View File

@ -1,5 +1,5 @@
#App Draft - template backend,
#manhwa Kai - template backend,
#### Run App on local machine:

View File

@ -1,6 +1,6 @@
{
"name": "appdraft",
"description": "App Draft - template backend",
"description": "manhwa Kai - template backend",
"scripts": {
"start": "npm run db:migrate && npm run db:seed && npm run watch",
"lint": "eslint . --ext .js",

View File

@ -1,6 +1,3 @@
const os = require('os');
const config = {
@ -39,7 +36,7 @@ const config = {
},
uploadDir: os.tmpdir(),
email: {
from: 'App Draft <app@flatlogic.app>',
from: 'manhwa Kai <app@flatlogic.app>',
host: 'email-smtp.us-east-1.amazonaws.com',
port: 587,
auth: {
@ -76,4 +73,4 @@ config.swaggerUrl = `${config.swaggerUI}${config.swaggerPort}`;
config.uiUrl = `${config.hostUI}${config.portUI ? `:${config.portUI}` : ``}/#`;
config.backUrl = `${config.hostUI}${config.portUI ? `:${config.portUI}` : ``}`;
module.exports = config;
module.exports = config;

View File

@ -81,7 +81,7 @@ const SourcesData = [
"name": "Komikku Demo Catalog",
"name": "manhwa Kai Demo Catalog",

View File

@ -77,8 +77,8 @@ const options = {
openapi: "3.0.0",
info: {
version: "1.0.0",
title: "App Draft",
description: "App Draft Online REST API for Testing and Prototyping application. You can perform all major operations with your entities - create, delete and etc.",
title: "manhwa Kai",
description: "manhwa Kai REST API for manga reading platform. You can perform all major operations with your entities - create, delete and etc.",
},
servers: [
{

View File

@ -1,6 +1,6 @@
const errors = {
app: {
title: 'App Draft',
title: 'manhwa Kai',
},
auth: {
@ -101,4 +101,4 @@ const errors = {
},
};
module.exports = errors;
module.exports = errors;

View File

@ -1,4 +1,4 @@
# App Draft
# manhwa Kai
## This project was generated by Flatlogic Platform.
## Install

View File

@ -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">
<b className="font-black">App Draft</b>
<b className="font-black">manhwa Kai</b>
</div>
@ -60,4 +60,4 @@ export default function AsideMenuLayer({ menu, className = '', ...props }: Props
</div>
</aside>
)
}
}

View File

@ -8,8 +8,8 @@ export const localStorageStyleKey = 'style'
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 tinyKey = process.env.NEXT_PUBLIC_TINY_KEY || ''
export const tinyKey = process.env.NEXT_PUBLIC_TINY_KEY || ''

View File

@ -149,8 +149,8 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
setStepsEnabled(false);
};
const title = 'App Draft'
const description = "Komikku-like web manga reader with library management, downloads, trackers sync, themes, and advanced reading modes."
const title = 'manhwa Kai'
const description = "manhwa Kai - Your ultimate web reader for manga, manhwa, and manhua."
const url = "https://flatlogic.com/"
const image = "https://project-screens.s3.amazonaws.com/screenshots/38203/app-hero-20260205-034702.png"
const imageWidth = '1920'
@ -164,7 +164,7 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
<meta name="description" content={description} />
<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:description" content={description} />
<meta property="og:image" content={image} />
@ -198,4 +198,4 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
)
}
export default appWithTranslation(MyApp);
export default appWithTranslation(MyApp);

View File

@ -10,7 +10,6 @@ import {
mdiThemeLightDark,
mdiDownload,
mdiCellphoneMarker,
mdiTranslate,
mdiShieldCheck,
mdiGithub,
} from '@mdi/js';
@ -102,7 +101,7 @@ export default function LandingPage() {
return (
<div className="min-h-screen bg-slate-900 text-slate-100 font-sans selection:bg-indigo-500 selection:text-white">
<Head>
<title>{getPageTitle('Komikku - Your Ultimate Manga Reader')}</title>
<title>{getPageTitle('Your Ultimate Manga Reader')}</title>
</Head>
{/* Navigation */}
@ -117,7 +116,7 @@ export default function LandingPage() {
<BaseIcon path={mdiBookOpenPageVariant} className="text-white" size={24} />
</div>
<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>
</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">
<BaseIcon path={mdiBookOpenPageVariant} className="text-white" size={18} />
</div>
<span className="text-xl font-bold tracking-tight">Komikku</span>
<span className="text-xl font-bold tracking-tight">manhwa Kai</span>
</div>
<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="/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" />
Source Code
</a>
</div>
<div className="text-sm text-slate-500">
© 2026 Komikku. All rights reserved.
© 2026 manhwa Kai. All rights reserved.
</div>
</div>
</footer>

View File

@ -1,5 +1,3 @@
import React, { useEffect, useState } from 'react';
import type { ReactElement } from 'react';
import Head from 'next/head';
@ -44,7 +42,7 @@ export default function Login() {
password: '09f1e4eb',
remember: true })
const title = 'App Draft'
const title = 'manhwa Kai'
// Fetch Pexels image/video
useEffect( () => {
@ -273,4 +271,4 @@ export default function Login() {
Login.getLayout = function getLayout(page: ReactElement) {
return <LayoutGuest>{page}</LayoutGuest>;
};
};

View File

@ -5,7 +5,7 @@ import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
export default function PrivacyPolicy() {
const title = 'App Draft'
const title = 'manhwa Kai'
const [projectUrl, setProjectUrl] = useState('');
useEffect(() => {
@ -289,4 +289,4 @@ export default function PrivacyPolicy() {
PrivacyPolicy.getLayout = function getLayout(page: ReactElement) {
return <LayoutGuest>{page}</LayoutGuest>;
};
};

View File

@ -39,7 +39,7 @@ export default function Register() {
return (
<>
<Head>
<title>{getPageTitle('Login')}</title>
<title>{getPageTitle('Register')}</title>
</Head>
<SectionFullScreen bg='violet'>
@ -89,4 +89,4 @@ export default function Register() {
Register.getLayout = function getLayout(page: ReactElement) {
return <LayoutGuest>{page}</LayoutGuest>;
};
};

View File

@ -5,7 +5,7 @@ import LayoutGuest from '../layouts/Guest';
import { getPageTitle } from '../config';
export default function PrivacyPolicy() {
const title = 'App Draft';
const title = 'manhwa Kai';
const [projectUrl, setProjectUrl] = useState('');
useEffect(() => {
@ -203,4 +203,4 @@ export default function PrivacyPolicy() {
PrivacyPolicy.getLayout = function getLayout(page: ReactElement) {
return <LayoutGuest>{page}</LayoutGuest>;
};
};