Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ehsan-eslami/next-calculator-app
This repository is calculator challenge from front-end mentor challenges.
https://github.com/ehsan-eslami/next-calculator-app
calculator frontend-mentor next nextjs react reactjs tailwind
Last synced: 9 days ago
JSON representation
This repository is calculator challenge from front-end mentor challenges.
- Host: GitHub
- URL: https://github.com/ehsan-eslami/next-calculator-app
- Owner: Ehsan-eslami
- Created: 2024-06-22T08:27:21.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-06-23T10:56:59.000Z (5 months ago)
- Last Synced: 2024-06-23T22:49:30.490Z (5 months ago)
- Topics: calculator, frontend-mentor, next, nextjs, react, reactjs, tailwind
- Language: TypeScript
- Homepage: https://next-calculator-app-six.vercel.app
- Size: 320 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Frontend Mentor - Calculator app solution
This is a solution to the [Calculator app challenge on Frontend Mentor](https://www.frontendmentor.io/challenges/calculator-app-9lteq5N29). Frontend Mentor challenges help you improve your coding skills by building realistic projects.
## Table of contents
- [Overview](#overview)
- [The challenge](#the-challenge)
- [Screenshot](#screenshot)
- [Links](#links)
- [My process](#my-process)
- [Built with](#built-with)
- [What I learned](#what-i-learned)
- [Continued development](#continued-development)
- [Author](#author)## Overview
This project is a modern web-based calculator built using Next.js, TypeScript, and Tailwind CSS. It offers a clean and user-friendly interface with the added functionality of theme customization, allowing users to choose from three distinct themes. This enhances user experience by providing visual variety and personalization options.
### The challenge
Users should be able to:
- See the size of the elements adjust based on their device's screen size
- Perform mathmatical operations like addition, subtraction, multiplication, and division
- Adjust the color theme based on their preference
- **Bonus**: Have their initial theme preference checked using `prefers-color-scheme` and have any additional changes saved in the browser### Screenshot
![ScreenShot from live server](./public/images/Screenshot.png)
### Links
- Solution URL: [Solution URL](https://github.com/Ehsan-eslami/next-calculator-app)
- Live Site URL: [Live site URL](https://next-calculator-app-six.vercel.app/)## My process
### Built with
- Next.js:
Server-side rendering for better performance and SEO.
Static site generation for improved load times.
API routes for any necessary backend logic.- TypeScript:
Strongly-typed JavaScript ensuring type safety and reducing runtime errors.
Enhanced developer experience with better code completion and refactoring capabilities.- Tailwind CSS:
Utility-first CSS framework for rapid UI development.
Customizable and responsive design out of the box.
Easy theming capabilities through configuration.### What I learned
1. Next.js
- Server-Side Rendering (SSR): Gained a deep understanding of how SSR works and its benefits for performance and SEO.2. TypeScript
- Type Safety: Appreciated the benefits of using TypeScript for catching errors early in the development process.
- Advanced Types: Became proficient in using advanced TypeScript features such as generics, enums, and type unions.3. Tailwind CSS
- Utility-First CSS: Embraced the utility-first approach to quickly style components without leaving the HTML.
- Custom Theming: Learned to customize the Tailwind configuration to create and apply different themes efficiently.
- Responsive Design: Developed skills in building responsive interfaces that work well across various device sizes.4. React
- Component-Based Architecture: Enhanced my understanding of breaking down the UI into reusable components.
- State Management: Used React’s useState hook to manage local state for both the calculator logic and theme selection.5. Problem-Solving and Debugging
- Debugging Tools: Became more adept at using browser developer tools and debugging techniques to troubleshoot issues.
- Error Handling: Learned to handle errors gracefully, providing meaningful feedback to users.### Continued development
- I want continue working on Themeprovider and css file that becomes easier and nicer## Author
- Website - [Ehsan Eslami](https://linktr.ee/Ehsaneslami)
- Frontend Mentor - [@Ehsan-eslami](https://www.frontendmentor.io/profile/Ehsan-eslami)This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.