- Node v22.14.0+
- NPM 10.9.2+
- Nextjs 16.2.6
- Sass 1.99.0
- TypeScript 5
- Copy
.env.exampleto.env npm installnpm run dev
Start the development environment for the project. Usage: npm run dev.
Start the production environment for the project. Usage: npm run start.
Create a production build of the project. Usage: npm run build.
Run linter to ensure code style. Usage: npm run lint.
Required. URL of the API the data is retrieved from.
Example value: NEXT_PUBLIC_API_URL=http://localhost:3000/
- Initial commit
- Added project settings such as Next.js, SCSS, and Prettier configuration, and updated the README
- Created the initial app structure, main pages, and global styles
- Added core components such as Login, Navigation, Sidebar, and Button to build the initial app layout
- Started working on the login page logic
- Added user management table functionality, including adding, deleting, and editing users
- Separated logic into individual components and added initial styling
- Created the home page and added styling
- dded a delete user confirmation modal to prevent accidental deletions
- Added styling for the login page and Loading component
- Extracted the delete user modal into a separate component and fixed some bugs in the Button component
- Improved API error handling and added the ErrorWarning modal
- Added error warnings for tables
- Added the settings page and simulated API failures
- Updated sidebar colors and fixed margin issues
- Added table styling
- Added styling for the new user modal
- Made final corrections
- Update readme
At the beginning I just wanted to get the main features working, so I focused on things like login, user management and layout before spending too much time on styling.
The project structure and components were organized in a way that keeps the code cleaner and easier to reuse. Additional attention was given to user experience by adding confirmation modals, loading states, and error handling to prevent accidental actions and improve usability.
The final phase included UI polishing, fixing layout issues, improving styling consistency.
During development, one of the main challenges was organizing the application structure in a way that kept the code clean and reusable as the project grew. Separating logic into smaller components required additional refactoring but improved maintainability.
Another challenge was handling application states and API errors properly.
Managing user interactions was also important, especially preventing accidental actions such as deleting users, which led to adding confirmation modals.
The final challenges were mostly related to styling consistency, layout spacing, and fixing smaller UI bugs across different components and pages.
I would also spend additional time refining the UI and overall user experience.