This project is a comprehensive dashboard application built using Nuxt.js, TypeScript, GraphQL, and Sass. It features user management capabilities, including registration, login, and CRUD operations. The dashboard also integrates modern tools for a seamless user experience.
The main goal of this project is to create a functional dashboard with the following pages and features:
- User Registration
- User Login
- Users Page: Display a paginated list of all users.
- Single User Page: Detailed information of a specific user.
- Create User Page: A form to add new users.
- Users can register with essential details such as name, email, and password.
- The
addUser
mutation is used to create a new user with an Admin role.
- Users can log in using their email and password.
- Session management is handled securely, storing user session data for authentication.
- Displays a table of all users fetched from the GraphQL API.
- Includes pagination for navigating through user data.
- Shows basic information such as name and email in the table.
- Detailed page showing information about a selected user.
- Fetches user details based on the user ID using GraphQL.
- A form is provided to create a new user with appropriate field validation.
- The user is added using a GraphQL mutation.
- Nuxt.js: Framework for building the application.
- TypeScript: All code is implemented in TypeScript for type safety and scalability.
- GraphQL: Used for data fetching and performing mutations with the provided API.
- Sass: Utilized for better management of CSS styles.
- UI Library: Incorporate a UI library (e.g., Element Plus) for enhanced user interface components.
- State Management: Pinia will handle the global state if necessary.
- Validation: Implement form validation using
vee-validate
. - Loading States: Display loading indicators while data is being fetched.
- Error Handling: Provide user feedback and handle errors gracefully for failed operations.
- Clone the repository:
git clone https://github.com/hanysaadeldeen/Nuxt.js-Dashboard.git