Basic full stack app to manage devices.
- List devices
- Add device
- Update device battery level
- chakra-ui for styling
- (Install pnpm)
- Install dependencies (
pnpm i -r
,-r
installs dependencies recursively in all packages/workspaces) - Run
pnpm prisma:migrate-dev
to initialize the database - Run
pnpm run --filter shared build
to build the shared package - In the
server
/client
package, create a.env
using.env.example
as template - Run
pnpm dev
to start the server and client - Check your terminal logs for the URLs of the server and client
- Backend (
server
) is a Node.js app using express and zod for request validation - Database (
database
) uses Prisma as ORM and SQLite as database - Frontend (
client
) is a React app using Vite as bundler, react-query for data fetching - Shared stuff (
shared
) contains types, constants, ... used in both backend and frontend
- Plain React and chakra-ui because this is a management app that does not really serve static content. Depending on the next steps of this app one can also consider to use Next.js.
- Add more features like adjusting devices further than just the battery level (name, ...)
- (PARTLY DONE) Style the App more beautifully using e.g. chakra-ui, tailwindcss or styled-components, ...
- Allow to delete devices
- Use Nx, Turborepo or similar to manage the monorepo
- Fix dependency problem (constant values cannot be used in the client package. Probably some vite/bundle issue)
- Setup a git repository
- Use PostgreSQL instead of SQLite
- Add tests (unit/integration/e2e)
- Add linter
- Add Routing (react-router) / Next.js
- ...