The project was created to develop programming skills. Calendar is a project using Django, MySQL, HTML, CSS, and Python technologies. The project contains four applications: blog, forum, user profile, and menstrual calendar.
Short film about the possibilities of the service on the YouTube platform (link).
The project has been successfully deployed on Heroku using MySQL database. The deployed version is currently in testing and the interface can be accessed at https://mens-cal.herokuapp.com. Heroku CLI was used for management and administration. Users can test the deployed version using the following credentials:
On the blog, only administrators can add posts, and logged-in and non-logged-in users can add comments. RichTextField is used for the body of posts and comments.
In the forum application, only logged-in users can add new posts and comment on existing ones. RichTextField is used for the body of posts and comments.
The user account application allows for registration, password change, and password reset with the submission of a token and email in the terminal (only in the production stage). On the user's main profile, there are links to the latest commented posts and quick access to menstrual calendar options.
The main part of the project is the menstrual calendar. Logged-in users can add their personalized calendar or add a user's calendar from whom they received a special code. After creating a personalized calendar, twelve personalized cycles are automatically generated that the user can view. After creating the calendar, the user can change personalized data that affects predicted cycles and reset the current cycle, which also generates personalized cycles. The last option is the ability to share your calendar with another person. By going to the Share tab, we go to the page with generating a unique code assigned to our profile. By sending this code, we only share viewing our menstrual calendar with another person. In the Share List tab, we can see who is observing our calendar and remove people, revoking their access to our calendar.
The project uses the following technologies:
- Python - programming language
- Django - web framework in Python
- MySQL - database management system
- HTML - markup language for creating web pages
- CSS - style sheet for describing the look of web pages
To generate a new database schema visualization, you can use the django-extensions's graph_models command:
python manage.py graph_models -a -o db_schema.pngPlanned changes for the project in the future include:
- Optimizing the display of the menstrual calendar.
- Adding website responsiveness.
- Adding post and comment editing on the forum by users.
Clone the repository using the command below :
git clone https://github.com/UserMarekDrag/calendar.gitMove into the directory where we have the project files :
cd calendarCreate a virtual environment :
# Create our virtual environment
python -m venv venvActivate the virtual environment :
windows
venv\scripts\activatelinux
source venv/bin/activateInstall the requirements :
pip install -r requirements.txtMigrate Database
python manage.py migrateCreate Super User
python manage.py createsuperuserTo run the App, we use :
python manage.py runserver⚠ Then, the development server will be started at http://127.0.0.1:8000/
Marek Drąg
You can check up django documentation page for any further information. Django Docs

