Giter Site home page Giter Site logo

nails_project's Introduction

Nails Beauty

This is an individual project assignment for the course "Python Web Framework" at SoftUni

Table of Contents

1. Introduction

Website users have the opportunity to create their own accounts and publish their feedback. Each feedback can be liked by other users. Each user collects their own feedback and likes from other users.

2. Website Overview

Both registered and unregistered users have access to the website.

Unregistered users have the opportunity to view only the feedback of registered users, and they cannot like them.

Registered users have the opportunity to create their own profiles and leave feedback. They may not like the feedback they have.

In the following described in detail the functionality of the objects.

2.1. Users and Profiles

A Custom User Model has been implemented to create a user objects so that the email address can be used as the primary user ID instead of the authentication username.

The user objects have relational connections to all other objects in the project.

In terms of registration, users are:

  • Anonymous User
  • Registered users
  • Administrative users

The accounts (profiles) objects have a relational connection "OnetoOne" with pre-created users.

2.1.1 Anonymous User

The anonymous user has permission to view only all public post and their details. This user has restricted access to the navigation bar. He is able to register in the website with an email and password. The registration includes an email verification process. Once this user has registered and logged in to the website he has access to the rest of the functionality.

2.1.2 Registered User

The registered user is already registered and can log in with an email and password. After his authentication, the user is able to navigate through the navigation bar. The registered user has his own profile with image, first name, last name, phone number, age. This user has all CRUD permissions to his own feedback. He can like all feedback in the system, except his own.

2.1.3 Administrative User

The administrative user gets enabled through the admin site by the superuser. His 'is_staff' field is set to True. This user has all CRUD permissions over other users and their posts in the database.

2.1.4 Profile Characteristics

Every registered user has an account (profile). The profile allows the user to change his password, to update his own information and to delete his own account. The profile page shows the completion of the user's profile and his feedback. The profile can be completed up to 100% after all fields in the form are filled out. Each registered user can see other user profiles and their feedback.

The profile has the following fields:

  • first name - CharField with max length 20 chars
  • last name - CharField with max length 20 chars
  • phone number - CharField max length 17 chars and validator for phone number
  • age - IntegerField
  • profile image - ImageField

2.2. Feedback

The feedback could be either public or private. It can be viewed by all types of users but created, edited, and deleted only by its author. The author can't like his own feedback. Only the other users can like it.

2.2.1 Feedback Characteristics

The feedback has the following fields:

  • type - CharField with max length 10 chars and choices options
  • feedback - CharField with max length 10 chars and choices options
  • description - CharField with max length 200 chars
  • user - ForeignKey relation with nails user
2.2.2 Feedback Likes

The feedback likes are public. It can be viewed by all types of users. The author and anonymous users can't like the feedback. Only the other users can like it. Once the like object is created by a single user, can be deleted on clicked again.

The feedback likes has the following fields:

  • feedback - ForeignKey relation with Feedback
  • user - ForeignKey relation with nails user

2.3. Schedule

The schedule could be either public or private. It can be viewed by all types of users but created, edited, and deleted only by superuser and staff user.

2.3.1 Schedule Characteristics

The schedule has the following fields:

  • date - DateField
  • start_time - TimeField
  • end_time - TimeField
  • available - BooleanField

3. Tests Coverage

image image

4. Additional Developments

  • ✔️ Responsive web design
  • ✔️ Class-based views
  • ✔️ Extended Django user
  • ❌ Documentation/ Swagger
  • ✔️ Use a file storage cloud API e.g., Cloudinary, Dropbox, Google Drive or other for storing the files
  • ❌ Implement Microservice architecture in your application.
  • ✔️ Additional functionality, not explicitly described in this section, will be counted as a bonus if it has practical usage.

5. Deploying on Heroku - nails-project.herokuapp.com

  • Using Git (Heroku Git, Heroku CLI)
  • Using Github

nails_project's People

Contributors

borislavstoychev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.