Secret Notes is a Django-based web application that allows users to create and share secure, self-destructing notes. The project is containerized using Docker and can be easily deployed using Docker Compose or Kubernetes.
- Create secure, encrypted notes
- Set expiration time for notes
- View notes using unique URL keys
- User registration and authentication
- Rate limiting to prevent abuse
- Dockerized application for easy deployment
- Docker and Docker Compose
- Kubernetes (optional, for k8s deployment)
-
Clone the repository:
git clone https://github.com/codescalersinternships/SecretNote-MVC-MohamedFadel/tree/development cd SecretNote-MVC-MohamedFadel
-
Start the application using Docker Compose:
docker-compose up --build
-
Access the application at
http://localhost:8008
.
├── docker-compose.yaml
├── Dockerfile
├── manage.py
├── notes/ # Main application
├── README.md
├── requirements.txt
├── secret-note/ # Helm chart for Kubernetes deployment
├── secret_notes_project/ # Django project settings
├── staticfiles/
└── wait_for_db.sh
To set up the development environment:
-
Create a virtual environment:
python -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Run migrations:
python manage.py migrate
-
Start the development server:
python manage.py runserver
The project includes various test files:
notes/tests.py
: Unit testsnotes/integration_tests.py
: Integration testsnotes/e2e_tests.py
: End-to-end tests
To run the tests:
python manage.py test
Use the provided docker-compose.yaml
file to deploy the application:
docker-compose up --build
A Helm chart is provided in the secret-note
directory for Kubernetes deployment. To deploy using Helm:
- Install Helm (if not already installed)
- From the project root, run:
helm install secret-notes ./secret-note
The main configuration files are:
secret_notes_project/settings.py
: Django settingsdocker-compose.yaml
: Docker Compose configurationsecret-note/values.yaml
: Helm chart values for Kubernetes deployment