Last Minute Conf

This commit is contained in:
Jyotirmoy Bandyopadhayaya 2022-01-31 23:04:21 +05:30
parent 653dd08052
commit 1bfaabcccb
10 changed files with 145 additions and 131 deletions

1
frontend/.prettierignore Normal file
View File

@ -0,0 +1 @@
.next

5
frontend/.prettierrc Normal file
View File

@ -0,0 +1,5 @@
{
"tabWidth": 3,
"semi": false,
"singleQuote": true
}

View File

@ -1,3 +1,3 @@
module.exports = { module.exports = {
reactStrictMode: true, reactStrictMode: true,
} }

View File

@ -1,34 +1,37 @@
{ {
"name": "url-minify", "name": "url-minify",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev", "dev": "next dev",
"build": "next build", "build": "next build",
"start": "next start", "start": "next start",
"lint": "next lint" "prettier": "prettier --write ."
}, },
"dependencies": { "dependencies": {
"next": "12.0.9", "next": "12.0.9",
"react": "17.0.2", "react": "17.0.2",
"react-dom": "17.0.2" "react-dom": "17.0.2"
}, },
"license": "MIT", "license": "MIT",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/bravo68web/url-minify.git" "url": "git+https://github.com/bravo68web/url-minify.git"
}, },
"keywords": [ "keywords": [
"url-minify", "url-minify",
"short-link", "short-link",
"generator", "generator",
"nextjs", "nextjs",
"frontend", "frontend",
"api", "api",
"rest" "rest"
], ],
"author": "BRAVO68WEB", "author": "BRAVO68WEB",
"bugs": { "bugs": {
"url": "https://github.com/bravo68web/url-minify/issues" "url": "https://github.com/bravo68web/url-minify/issues"
}, },
"homepage": "https://github.com/bravo68web/url-minify#readme" "homepage": "https://github.com/bravo68web/url-minify#readme",
"devDependencies": {
"prettier": "2.5.1"
}
} }

View File

@ -1,7 +1,7 @@
import '../styles/globals.css' import '../styles/globals.css'
function MyApp({ Component, pageProps }) { function MyApp({ Component, pageProps }) {
return <Component {...pageProps} /> return <Component {...pageProps} />
} }
export default MyApp export default MyApp

View File

@ -1,5 +1,5 @@
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default function handler(req, res) { export default function handler(req, res) {
res.status(200).json({ name: 'John Doe' }) res.status(200).json({ name: 'John Doe' })
} }

View File

@ -1,33 +1,33 @@
import { useState } from "react"; import { useState } from 'react'
import Head from "next/head"; import Head from 'next/head'
import styles from "../styles/Home.module.css"; import styles from '../styles/Home.module.css'
export default function Home() { export default function Home() {
const [shortUrl, setShortUrl] = useState(null); const [shortUrl, setShortUrl] = useState(null)
const [longURL, setLongURL] = useState(""); const [longURL, setLongURL] = useState('')
return ( return (
<div className={styles.container}> <div className={styles.container}>
<Head> <Head>
<title>URL MiniFy</title> <title>URL MiniFy</title>
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
</Head> </Head>
<main className={styles.main}> <main className={styles.main}>
<h1 className={styles.title}>Welcome to URL MiniFy</h1> <h1 className={styles.title}>Welcome to URL MiniFy</h1>
<div className={styles.card}> <div className={styles.card}>
<h2>Paste the URL to be Shortened</h2> <h2>Paste the URL to be Shortened</h2>
<form className="input"> <form className="input">
<input <input
name="longURL" name="longURL"
type="text" type="text"
value={longURL} value={longURL}
onChange={(evt) => setLongURL(evt.target.value)} onChange={(evt) => setLongURL(evt.target.value)}
/> />
<button type="submit">Minify</button> <button type="submit">Minify</button>
</form> </form>
</div> </div>
</main> </main>
</div> </div>
); )
} }

View File

@ -1,116 +1,116 @@
.container { .container {
padding: 0 2rem; padding: 0 2rem;
} }
.main { .main {
min-height: 100vh; min-height: 100vh;
padding: 4rem 0; padding: 4rem 0;
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.footer { .footer {
display: flex; display: flex;
flex: 1; flex: 1;
padding: 2rem 0; padding: 2rem 0;
border-top: 1px solid #eaeaea; border-top: 1px solid #eaeaea;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.footer a { .footer a {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
flex-grow: 1; flex-grow: 1;
} }
.title a { .title a {
color: #0070f3; color: #0070f3;
text-decoration: none; text-decoration: none;
} }
.title a:hover, .title a:hover,
.title a:focus, .title a:focus,
.title a:active { .title a:active {
text-decoration: underline; text-decoration: underline;
} }
.title { .title {
margin: 0; margin: 0;
line-height: 1.15; line-height: 1.15;
font-size: 4rem; font-size: 4rem;
} }
.title, .title,
.description { .description {
text-align: center; text-align: center;
} }
.description { .description {
margin: 4rem 0; margin: 4rem 0;
line-height: 1.5; line-height: 1.5;
font-size: 1.5rem; font-size: 1.5rem;
} }
.code { .code {
background: #fafafa; background: #fafafa;
border-radius: 5px; border-radius: 5px;
padding: 0.75rem; padding: 0.75rem;
font-size: 1.1rem; font-size: 1.1rem;
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,
Bitstream Vera Sans Mono, Courier New, monospace; Bitstream Vera Sans Mono, Courier New, monospace;
} }
.grid { .grid {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex-wrap: wrap; flex-wrap: wrap;
max-width: 800px; max-width: 800px;
} }
.card { .card {
margin: 1rem; margin: 1rem;
padding: 1.5rem; padding: 1.5rem;
text-align: left; text-align: left;
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
border: 1px solid #eaeaea; border: 1px solid #eaeaea;
border-radius: 10px; border-radius: 10px;
transition: color 0.15s ease, border-color 0.15s ease; transition: color 0.15s ease, border-color 0.15s ease;
max-width: 300px; max-width: 300px;
} }
.card:hover, .card:hover,
.card:focus, .card:focus,
.card:active { .card:active {
color: #0070f3; color: #0070f3;
border-color: #0070f3; border-color: #0070f3;
} }
.card h2 { .card h2 {
margin: 0 0 1rem 0; margin: 0 0 1rem 0;
font-size: 1.5rem; font-size: 1.5rem;
} }
.card p { .card p {
margin: 0; margin: 0;
font-size: 1.25rem; font-size: 1.25rem;
line-height: 1.5; line-height: 1.5;
} }
.logo { .logo {
height: 1em; height: 1em;
margin-left: 0.5rem; margin-left: 0.5rem;
} }
@media (max-width: 600px) { @media (max-width: 600px) {
.grid { .grid {
width: 100%; width: 100%;
flex-direction: column; flex-direction: column;
} }
} }

View File

@ -1,16 +1,16 @@
html, html,
body { body {
padding: 0; padding: 0;
margin: 0; margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
} }
a { a {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
* { * {
box-sizing: border-box; box-sizing: border-box;
} }

View File

@ -126,6 +126,11 @@ postcss@8.4.5:
picocolors "^1.0.0" picocolors "^1.0.0"
source-map-js "^1.0.1" source-map-js "^1.0.1"
prettier@2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
react-dom@17.0.2: react-dom@17.0.2:
version "17.0.2" version "17.0.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"