Sage Project is a backend-only web application named FavLinks. This application allows users to manage their favorite URLs, categories, and tags. The project is built using the Django web framework and follows secure practices for user authentication. The application is designed to be user-friendly and efficient in managing and categorizing favorite URLs.
Develop a user-friendly web application that enables users to:
- Manage their favorited URLs.
- Organize URLs by categories and tags.
- Perform CRUD operations via RESTful API endpoints.
- Django Framework: Leveraging Django to build a scalable and maintainable project structure.
- Database Management: Uses a database system of your choice with an optimized schema design.
- User Authentication: Includes secure user registration, login, and password reset functionalities.
- RESTful API: Provides API endpoints for CRUD operations on favorited URLs, categories, and tags.
- Python 3.12.3
- Django
- Other dependencies listed in
requirements.txt
-
Clone the repository:
git clone https://github.com/arnon3339/sage-project.git cd sage-project -
Set up the virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts activate`
-
Install the dependencies:
pip install -r requirements.txt
-
Set up the environment variables by creating a
.envfile in the root directory. The.envfile should contain necessary configurations such as database settings and secret keys.Important: Set the
DJANGO_SECRET_KEYenvironment variable in your system to secure JWT token authentication. This key is used as the secret key for generating and verifying JWT tokens.Example:
export DJANGO_SECRET_KEY='your_secret_key_here'
-
Apply migrations:
python manage.py migrate
-
Run the development server:
python manage.py runserver
After starting the server, you can access the API endpoints through tools like Postman or cURL. The API provides the following functionality:
- User Authentication: Register, login, and reset passwords.
- Manage URLs: Add, update, delete, and view favorited URLs.
- Categories and Tags: Organize URLs using categories and tags.
If you'd like to contribute to this project, please fork the repository and use a feature branch. Pull requests are warmly welcome.
This project is licensed under the MIT License.