A full-stack web application providing user authentication functionality with ASP.NET Core backend and React TypeScript frontend.
- User registration with validation
- User login with secure authentication
- User profile management
- List of registered users
- Modern Material-UI interface
- Secure password hashing
- Input validation and error handling
- Detailed error logging
- ASP.NET Core 9.0
- Entity Framework Core
- SQL Server
- BCrypt for password hashing
- Swagger/OpenAPI
- React 18
- TypeScript
- Material-UI
- Axios
- React Router
- .NET 9.0 SDK
- Node.js and npm
- SQL Server
- Visual Studio 2022 or VS Code
- Clone the repository
- Navigate to the API project:
cd UserAuthApp.Api
- Update the connection string in
appsettings.json
with your SQL Server details - Apply database migrations:
dotnet ef database update
- Run the backend:
The API will be available at
dotnet run
http://localhost:5158
- Navigate to the client project:
cd client
- Install dependencies:
npm install
- Start the development server:
The application will be available at
npm start
http://localhost:3000
(or next available port)
- POST
/api/Auth/register
- Register a new user - POST
/api/Auth/login
- Login user - GET
/api/Auth/users
- Get list of users
UserAuthApp/
├── UserAuthApp.Api/ # Backend API
├── client/ # Frontend React application
└── README.md
- Password must be at least 6 characters long
- Phone number must be in a valid format
- Email must be unique and in valid format
- All required fields must be filled
- Password hashing using BCrypt
- Input validation and sanitization
- CORS configuration
- Error handling middleware
- Secure HTTP headers
- Detailed error logging
-
Backend development:
- Use Visual Studio 2022 or VS Code
- API documentation available at
/swagger
- Entity Framework for database operations
-
Frontend development:
- Material-UI components for modern UI
- TypeScript for type safety
- React Router for navigation
- Axios for API communication
- Comprehensive error logging
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details