Full stack demo CRUD app built with Express, React and TypeScript.
A simple User Management interface which lists current users in the system. Admins can add a new user, and update or delete existing users.
Originally written as a learning experience for React development, I've rebuilt this project to reflect new patterns and technologies that I've adopted over time. Also the COVID-19 pandemic was a thing, so I had some extra time on my hands. 🦠 ⏰
- Frontend: React, TypeScript, Material UI
- Backend: Node + Express, OvernightJS, Mongoose
- Database: Docker, MongoDB
- CI/CD: GitHub Actions
- Ensure that
Docker
is installed and running - In your terminal,
cd
into theserver
directory and runnpm install
- From the project root, open your terminal and run
docker compose up
- Seed data for
admins
andusers
will be populated in the database automatically - The server will be running on
http://localhost:3000
- Seed data for
The server/README.md
provides additional information on build scripts and environment variables.
- In another terminal window,
cd
into theclient
directory and runnpm install
- Run
npm start
- The application may be accessed in a web browser at
http://localhost:8080
- The application may be accessed in a web browser at
The client/README.md
provides additional information on build scripts and environment variables.
The runtime environment for this application requires
node >= 14.6.0
andnpm >= 6.14.7
.
This application makes use of
ESLint
,Stylelint
andEditorConfig
. Each of these features requires an extension be installed in order to work properly with IDEs and text editors such as VSCode.
This application has been tested for accessibility via the axe DevTools - Web Accessibility Testing and Accessibility Insights for Web Chrome extensions.