A personal web application for privately logging moments when you think about someone special. The app features a pin-protected login system with two access levels:
- Your PIN: Full access to add, edit, and manage entries
- Her PIN: Read-only access to view all entries
- React.js
- Material-UI
- React Router
- Axios
- FastAPI
- SQLite
- SQLAlchemy
- Python 3.11+
.
├── backend/
│ ├── requirements.txt
│ └── main.py
└── frontend/
├── package.json
└── src/
├── components/
│ ├── PinScreen.js
│ ├── Dashboard.js
│ └── ViewerPage.js
├── services/
│ └── api.js
├── App.js
└── index.js
-
Navigate to the backend directory:
cd backend
-
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the FastAPI server:
uvicorn main:app --reload
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Create a
.env
file:REACT_APP_API_URL=http://localhost:8000
-
Start the development server:
npm start
- Your PIN: 1234
- Her PIN: 5678
Note: For security reasons, please change these PINs in production.
- Pin-protected access
- Add, edit, and delete entries (your access)
- Read-only view of all entries (her access)
- Responsive design
- Dark mode UI
- Timestamp for each entry
- PINs should be stored securely (hashed) in production
- Use environment variables for sensitive data
- Implement rate limiting for PIN attempts
- Use HTTPS in production
- Consider adding session management
MIT License