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