Skip to content

The project contains four applications: blog, forum, user profile, and menstrual calendar.

Notifications You must be signed in to change notification settings

UserMarekDrag/menstrual-calendar

Repository files navigation

Project Description

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.

Video

Short film about the possibilities of the service on the YouTube platform (link).

Watch the video

Deployment on Heroku

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:

LOGIN: DEMO

PASSWORD: pcC3J7fBX3JU5JM

Blog

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.

Forum

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.

Users

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.

Cycle Calendar

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.

Technologies

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

Database Schema

Database Schema

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.png

Planned Changes

Planned changes for the project in the future include:

  1. Optimizing the display of the menstrual calendar.
  2. Adding website responsiveness.
  3. Adding post and comment editing on the forum by users.

Cloning the repository

Clone the repository using the command below :

git clone https://github.com/UserMarekDrag/calendar.git

Move into the directory where we have the project files :

cd calendar

Create a virtual environment :

# Create our virtual environment
python -m venv venv

Activate the virtual environment :

windows

venv\scripts\activate

linux

source venv/bin/activate

Install the requirements :

pip install -r requirements.txt

Migrate Database

python manage.py migrate

Create Super User

python manage.py createsuperuser

Running the App

To run the App, we use :

python manage.py runserver

⚠ Then, the development server will be started at http://127.0.0.1:8000/

Author

Marek Drąg

Documentation

You can check up django documentation page for any further information. Django Docs

About

The project contains four applications: blog, forum, user profile, and menstrual calendar.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published