This project implements a user authentication system using Django and React. It includes user registration, login, logout, and fetching user data. Authentication is handled using JWT (JSON Web Tokens) and HTTP-only cookies for improved security. The application's frontend is styled using Bootstrap.
The project consists of two directories:
client
: Contains the React applicationserver
: Contains the Django backend
To run this project on your local machine, follow the steps below:
Ensure you have the following installed on your local machine:
- Python 3.8 or higher
- Node.js v14.15.0 or higher
- npm 6.14.9 or higher
- Clone the repository:
git clone https://github.com/<yourusername>/<yourrepository>.git
- Change into the directory:
cd <yourrepository>
- Navigate to the
server
directory:cd server
- Install Django and other dependencies:
pip install -r requirements.txt
- Create a virtual environment (Optional but recommended):
python -m venv env
- Activate the virtual environment:
On Windows:
On MacOS/Linux:
.\env\Scripts\activate
source env/bin/activate
- Create a
.env
file in theserver
directory and add your secret key like this:SECRET_KEY=<your-secret-key>
- Navigate to the
client
directory:cd ../client
- Install all the dependencies:
npm install
- Run the client:
npm start
Now, your application should be running at localhost:3000
.
Note:
- The Django server should be running at the same time as the React application for the system to function properly.
- The application uses the email field instead of the username field for user identification.