This is the second project I created as part of my course at the Institute of Data (IOD). After learning the fundamentals of backend development, we were tasked with building an app of our choice that combines our knowledge of both front-end and backend development. For this project, we learned about using Express for the backend and React for the front end. I decided to challenge myself by using Next.js for the front end.
This project is a user management system built using Next.js and Material-UI (MUI) for the front end and Express for the backend. The application allows users to log in, view a dashboard, and manage a list of users with functionalities such as adding, viewing, and editing user details.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
- View a list of users and detailed user information.
- Add, edit, and delete users with confirmation modals.
- Basic User authentication and protected routes for dashboard access.
- Dashboard Pages:
- dashboard/layout.jsx and dashboard/page.jsx: Layout and main page components for the dashboard.
- Login Pages:
- login/layout.jsx and login/page.jsx: Layout and main page components for user login.
- User Management:
- users/layout.jsx, users/page.jsx, userstable/layout.jsx, and userstable/page.jsx: Components for user listing and table views.
- Components:
- AddUserForm.jsx, AddUserModal.jsx, Alert.jsx, AppBar.jsx, DeleteConfirmation.jsx, EditUserForm.jsx, LoginPage.jsx, Modal.jsx, UserList.jsx, UserTable.jsx, ViewUserInfoCard.jsx: Various reusable components for user forms, modals, alerts, tables, and more.
- Context:
- UserContext.jsx: Handles state management and context for user data.
- Themes:
- makingStyles.jsx: Defines custom styles for the application.
- Routes:
- userDataController.js and userDataRoutes.js: Define routes and controllers for managing user data.
- Entry Point:
- index.js: Main server entry point.
- Swagger Documentation:
- swagger.json: Contains the Swagger documentation for the API.
FrountEnd
Backend
To get a local copy up and running follow these simple example steps.
-
Clone the repo
git clone https://github.com/nelg62/MiniProject2.git
-
Change directory of not already there
cd miniproject2express
-
Install NPM packages
npm install
-
Run project (Back End)
npm start
-
Change directory if not already there
cd miniproject2nextjs
-
Install NPM packages
npm install
-
Run project (Frount End)
npm run dev
-
Browse to project
http://localhost:3000
in progress...
- Host Frount end in cloud (Netlify)
- Host Backend in Cloud (Render)
- Tidy code and make moble responsive
- change styling to tailwind from MUI for mor customisability
- add more features sutch as inventory list and linking items to people
- add databse to store information
- add user login to manage and see spesific data depending on who loggs in and access depending on who logs in
- add companies or groups as an access
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Glen Harding - glen.harding.nz@gmail.com
Project Link: https://github.com/nelg62/MiniProject2