The Student Dashboard is a React.js web application designed for managing student data. It allows admins and superusers to:
- Add new students with details like name, cohort, joining date, last login, courses enrolled, etc.
- View, update, and delete student records.
- Navigate through dummy screens for Dashboard, Help, Reports, Chapters, and Settings.
The application is fully responsive, ensuring a seamless experience across devices including mobiles, tablets, and desktops.
You can access the live version of the app here: Student Dashboard Web App
The application is built using the following technologies:
- React.js: Component-based frontend library.
- React Router DOM: For client-side routing.
- Redux Toolkit: Simplified state management.
- Tailwind CSS: Utility-first framework for styling and responsiveness.
- Axios: For making HTTP requests.
The folder structure is organized for scalability and maintainability. Below is a brief description:
.env: Stores environment variables, includingREACT_APP_API_URLfor the backend API URL..env.example: Template for.envto assist users in setting up their environment.
-
src/assets: Contains static assets like fonts, icons, and images. -
src/components: Reusable UI components, including:- Buttons: Custom button components.
- Errors: For displaying error messages.
- Input: Includes
CustomInput,CustomSelect, andMultiselect. - Loading: Loading modals or messages.
- Modal: A base template for modals (e.g., Student Info Form).
- Skeletons: Placeholder UI for loading states.
- Students: Components specific to the Students screen (e.g.,
StudentTable,StudentHeader,StudentTableRow). - Template: Includes
BaseTemplatefor the main app layout.
-
src/const: Stores static data such as route definitions and student input field configurations. -
src/containers: Screen-specific folders such as:- Students
- Help
- Dashboard
- Settings
-
src/redux: Handles global state management with Redux Toolkit:store.js: Configures the Redux store.studentsfolder:studentSlice.js: Defines reducers and actions for CRUD operations.studentServices.js: Contains API call logic.useStudent.js: Custom hook to interact withstudentServicesand Redux state.
-
src/services: Includesapi.jsfor initializing the Axios instance. -
src/utils: Contains utility functions likedateParsefor formatting dates. -
src/app.js: Initializes routing withReact Routerand sets up theBaseTemplate. -
src/index.js: Wraps the app withRedux Providerto enable global state management.
- Fully Responsive: Adapts seamlessly to mobile, tablet, and desktop screen sizes.
- Student Management:
- Add, view, update, and delete student records.
- Includes fields like name, cohort, joining date, last login, status, and enrolled courses.
- Global State Management: Maintains student data in a Redux store.
- Backend Integration: Executes CRUD operations via API calls, syncing data with the backend.
- The app leverages Redux Toolkit for efficient state management.
- Student Slice: Contains reducers for all CRUD operations.
- Custom Hook (
useStudent):- Facilitates interaction between React components, Redux store, and backend services.
- Handles API calls, dispatches actions, and updates the state.
The entire application is styled using Tailwind CSS:
- Utility classes ensure consistent design.
- Enables responsiveness across devices without additional media queries.
- Clone the repository:
git clone https://github.com/Kanha-13/StudentsDashboard.git StudentsDashboard
- Navigate to the project folder and create a
.envfile in the root directory. - Copy the variables from
.env.exampleand update them:REACT_APP_API_URL=<your-backend-api-url>
- Install dependencies:
npm install
- Start the development server:
npm start
For backend setup, refer to the Student Dashboard Node app Repository.