This Django project is designed to provide user management functionalities with a focus on security, flexibility, and maintainability. Below are the key features and design principles incorporated into the project.
- Users can sign up and create an account.
- Authentication is implemented for user logins.
- User status must be verified for successful login, ensuring a secure authentication process.
- Utilizes SendGrid for sending system emails.
- Easily customizable to add other email services as needed.
- Celery is integrated for handling asynchronous tasks, improving performance and responsiveness.
- Implemented logging for various log levels: debug, info, warning, error.
- Custom attributes are logged with a JSON formatter for improved readability.
- Exceptions are appropriately handled to ensure smooth execution and enhance user experience.
- Utilizes Domain Driven Design principles for organizing project structure, promoting modularization and maintainability.
- The project embraces a loosely coupled model design, enhancing flexibility and ease of maintenance.
- Includes a utility service for common project requirements, promoting code reusability.
- Implemented data classes for model abstraction, improving code readability and maintainability.
-
Clone the repository:
[email protected]:HarshShahCitrusbug/django-sample.git cd user_management_project
-
Install dependencies:
pip install -r requirements.txt
-
Configure Django settings in
settings.py
, including database settings, email service API keys, and other project-specific configurations. -
Run database migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
-
Access the application at
http://localhost:8000/
.