This is a project made by Federico Tejedor Llorente with Next.js (React), TypeScript and TailwindCSS, and it was bootstrapped with create-next-app
.
This platform uses the SWAPI GraphQL API for fetching the initial data. Then you can add/create, edit and delete planets as you want. This is stored in your browsers local storage, since the initial data is stored there after is firstly fetched to the Star Wars API.
You will see that the logic is organized in several folders like 'components', 'domain' and 'infra'. I tried to follow a DDD-ish architecture splitting the different types of functions into domiain-related ones (like the getPlanets function), infrastructure-related ones (like the GraphQL or Local Storage functions) and web/React components.
I did not implemented Redux in this case because I didn't find it really useful for this case since it was planned as a simple and quickly developed app/platform.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.tsx
. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.ts
.
The pages/api
directory is mapped to /api/*
. Files in this directory are treated as API routes instead of React pages.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.