Giter VIP home page Giter VIP logo

bes_crm's Introduction

BES CRM


  Live link can be found here - link \

 

Table of Contents

Background

CRM was created for sales persons of Bohemian Estates with their constant need to be on the move in mind. Therefore mobile first apporach was done. With the most important thing to able to do while with customer, to be able to quickly create a new lead with couple of clicks.

Mission Statement

to create an app which makes life of a sales person easier thanks to its ability to do everything opn the go.

Target audience

employees who could use this app

 

Name Age years of experience
Robert Poppl 35 15
Yury Vachugov 38 4
Tereza Hanzlik 45 2

 

User goals

  1. create update and delete leads
  2. quickly be able to do everything on the mobile phone
  3. login and logout
  4. view own details

User stories

ID User Category User wants to... So they can...
01 app user create lead create and mantain list of leads
02 app user update lead update any changes on a lead
03 app user delete a lead delete a lead if needed
04 app user login, logout to be able to login and logout
05 app user delete profile delete own profile if needed
06 app user register easily register for an account
07 app user list of leads maintain a list of leads

 

Requirements and Expectations

Requirement Expectation
Visually appealing and well laid out Colours to be complimentary, text to be clear. Navigation to be logical and simple
Responsive design (Mobile first) The screen size to not affect the look of the application
CRUD functionality Easily maintain leads and profile


  Back to Top
 

Wireframes

type name link
PC home page homepage
mobile home page mobile homepagemobile
PC login page login
mobile login page loginmobile
PC signup page signup
mobile signup page signupmobile
PC dashboard dashboard
mobile dashboard dashboardmobile
PC lead list leadlist
mobile lead list leadsmobile
PC create a lead createalead
mobile create a lead createleadmobile
PC delete a lead deletealead
mobile delete a lead deletealeadmobile
PC update a lead leadupdate
mobile udpate a lead leadupdatemobile
PC udpate a profile updateprofile
mobile update a profile updateprofilemobile
PC delete a profile profiledelete
mobile delete a profile profiledeletemobile


  Back to Top
 

Design Choices

Fonts

there was no choice of a new font, everythnig was clearly visible with the default one

Colors

link

Colors and contrast validations

contrast1 contrast2

Hex Value Text Button Background
#FFFFF x
#285677 x
#285670 x x
#678D86 x

 

Models

leads

Name Key Type Other Details
first_name CharField max_length=20
last_name CharField max_length=20
description TextField
date_added DateTimeField auto_now_add=True
phone_number CharField max_length=20
email EmailField
agent User ForeignKey null=True, blank=True, on_delete=CASCADE

Forms

LeadModelForm fields

  • first name
  • last name
  • description
  • phone number
  • email

CustomerCretionForm fields

  • username
  • email
  • password1
  • password2
  • first_name
  • last_name

CustomUserEdit excludefields

  • password
  • last-login
  • is_superuser
  • groups
  • date_joined
  • user permissions
  • is_active
  • is_staff


  Back to Top
 

features

Existing Features

Name link function comments
navbar link helps navigate a site from bootstrap without additional changes
login button [link](media/readmedocs/features/login button.png) positiove button this style of button is used trhu the page to confirm/submit positive actions
delete button [link](media/readmedocs/features/delete button.png) negative button this style of button is used trhu the page to confirm negative actions
home button [link](media/readmedocs/features/home button.png) positive button very similar to login button
hover link hobvering effect indicates a hover with the mouse over the button
success message link signals postive actions is used whener there is a positive action on a page
delete message [link](media/readmedocs/features/info-deletemedia/readmedocs/features/info - delete message.pngmessage.png) signals negative actions is used whenever there is a negative action on a page

Authentication

The authentication process for the application has three parts.

  • Sign Up
  • Sign In
  • Log out

Sign Up

The signup process requests following required fields from the user:

  • Username
  • First name
  • Last name
  • Password
  • Password confirmation

Sign In

The sign-in form requires only two fields to be entered.

  • Username
  • Password

Features to be Implemented

  • lead count
  • reward input
  • follow up feature


  Back to Top
 

Languages

Languages Description Link
HTML HTML for the structure of the site
CSS CSS for the design of the site
JavaScript JavaScript for the design of the site
jQuery jQuery for animations in the site
Python Python for the backend interactions
Markdown Markdown for the content in my README file

Libraries and Frameworks

Libraries / Frameworks Description Link
Django Database Driven Framework django
gunicorn HTTP Interface Server gunicorn
psycopg2 Database adaptor psycopg2
cloudinary Image management cloudinary
django auth User authentication auth

Tools

Tools Description Link
ColorMind Colour palet coolors
GitPod Development environment Gitpod
Balsamic Wireframes Balsamic
W3C Markup Validation W3C Markup Validation Service
W3C CSS Validation W3C CSS Validation Service
PEP8 Python Validation PEP8

Deployment

This project was created using GitHub and the code was written using Gitpod. This project is also deployed to Heroku with Heroku deployment set to Enable Automatic Deploys. This means that every time that the repository was pushed to, Heroku was updated also.

The live link to the application can be found here

Local Deployment

As Gitpod was the IDE that was used to create the project, the following local deployment steps are specific to Gitpod.

Cloudinary

  • Visit Cloudinary by following this link
  • Click on the Sign Up For Free button
  • When the account is created, you should see the API Environment variable, we will need this for a later process.

GitHub

  • Visit Github by following this link

  • Create an account or log in

  • In the terminal run

pip3 install -r requirements.txt
  • In the root directory create a file called env.py and add the following content, the content of these, must match the Config Vars in the Heroku deployment section
import os

os.environ['DATABASE_URL'] = "FROM HEROKU DEPLOYMENT SECTION, DATABASE_URL CONFIG VAR"
os.environ['SECRET_KEY'] = "FROM HEROKU DEPLOYMENT SECTION SECRET_KEY CONFIG VAR"
os.environ['CLOUDINARY_URL'] = "API ENVIRONMENT VARIABLE REMOVE 'CLOUDINARY_URL=' FROM BEGINING"
os.environ['DEVELOP'] = '1'


* Add the env.py file to the .gitignore file to ensure that its contents are not made public

* Migrate the database models with the following command in the terminal

* Create a superuser and set up the credentials with the following command

python3 manage.py createsuperuser


* Run the application locally with the command

python3 manage.py runserver

Deployment via Heroku

  • Visit heroku.com

  • Create a new account or sign in

  • From the dashboard, select New and then Create new app

  • Enter an individual app name into the text box, select a region from the dropdown and then press Create app

  • A Heroku app has now been created and the Deploy tab is opened.

  • Open the Resources tab and in the search bar for Add-ons type Postgres

  • Select Heroku Postgres, on the popup, ensure the dropdown is set to Hobby Dev - Free and then Submit Order Form

  • Open the Settings tab and then click on the Reveal Config Vars button and the database_url should be populated.

  • Fill out the rest of the config vars with the content of the table below by filling out the Key and Value and clicking on Add for each entry

  • In the buildpacks section of the settings tab, click on Add Buildpack, select python and then save changes

  • Open the Deploy tab

  • In the deployment method section, select GitHub and confirm the connection.

  • Enter the repo-name into the text box and click Search. When the correct repo appears below, click Connect

  • Return to the Gitpod workspace and in the root directory create a file called Procfile

  • In the Procfile enter the following line including your project name

web: gunicorn YOUR_PROJECT_NAME.wsgi
  • Add and commit to GitHub
git add .
git commit -m "commit message goes here"
git push
  • Add your Heroku app URL to ALLOWED_HOSTS in your settings.py file
ALLOWED_HOSTS = ['YOUR_PROJECT_NAME.herokuapp.com', 'localhost']

Code Validation

HTML

File Name link Result Comments
homepage link PASS
login link PASS
register link 4 errors all coming from django builtin form

CSS

File Name Link Result Comments
base link PASS
leads link PASS

Python

File Name link Result Comments
leads views link PASS
leads urls link PASS
leads forms link PASS
leads models link PASS
members forms link 1 warning trailing whitespace - could get rid of it even after many tries
members urls link PASS
members views link PASS


  Back to Top
 

Credits

  • Codeinstitute for big support, student care and tutors, thank you
  • Simen Daehlin for advice and direction and continual support
  • Codemy.com for help on Django


  Back to Top
 

bes_crm's People

Contributors

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