A basic project management system for a company specializing in custom design magazines. Currently under development.
This project is free to use for any purposes under the Apache license. Attribution is required and I cannot be held liable for any issues arising from your use or modification of this software.
- Flask
- Jinja2
- Flask-SQLAlchemy
- Flask-Script
- Flask-Migrate
- Flask-Login
- Flask-WTF
- Flask-Mail
- Flask-Material
- Flask-Moment
- Easily see data about all of your clients (company, location, contact info, phone, magazines, and notes)
- Quickly know the status of all your active magazines
- View all the uncompleted tasks for each client/magazine on either the clients page, or their magazine page
- See all of your users active work and whether they're road blocked by anything
- Make quick and easy edits to all of the above with simple forms
Note: Screenshots coming soon. Any web designers who would like to contribute to prettifying the system are greatly appreciated as well.
- Add the ability to populate the database from a CSV file (Mostly done but not ready yet)
- Add default username/password to DB
- Add automatic email to the magazines sales person when an employee is road blocked on a task
- Add automatic email to employee when they are assigned a new task
- Add option to assign tasks to specific pages of each magazine
- Expand user system to utilize roles for ease of future expansion
- Implement a material design
The site currently uses Flask-SQLAlchemy for database management, by default it will create a SQLite database in the application folder. There is no default username inserted into the database so you'll have to create one before you can log in and start creating clients, magazines, tasks and other users. This can be accomplished by running this in flask-script from the terminal:
$ python manage.py shell
>>> from app import db
>>> from app.models import User
>>> user = User(email='youremail@addresshere.com', first_name='First', last_name='Last', password='Your Password here')
>>> db.session.add(user)
>>> db.session.commit()
Note: This does not store your password in plaintext. The application will automatically encrypt using Werkzeug.Security
From here you should be good to go. For instructions on using the application refer to the following section.
- Go to the 'Clients' tab at the top of the page
- Select 'Add Client'
- Enter the company name
- Enter their address
- Enter the main contact person's name
- Enter their email address
- Enter their phone number
- Enter any additional notes about the client.
- Submit
Note: To add a new magazine you must first have a client to assign it to.
- Go to the 'Magazines' tab at the top of the page
- Select 'Add Magazine'
- Select the client the magazine is for, leave the published status as 'Not Published' unless the magazine is already completed.
- Enter the magazine name (e.g. 'Comfort Zone', 'Degrees')
- Enter the name of the sales person
- Enter the page count of the magazine
- Enter any additional notes about the magazine
- Submit
Note: To add a new task you must first have an magazine and a user of which to assign it.
- Go to the 'Tasks' tab at the top of the page
- Select 'Add Task'
- Select the magazine from the dropdown (Note: This will only show magazines which are not set as 'Published')
- Set the status of the task
- Enter a task name
- Enter a description of what the task entails
- Enter a due date (Use the format: MM/DD/YYYY)
- Enter any additional notes about the task
- Submit
- Go to the 'Users' tab at the top of the page
- Select 'Add User'
- Enter the email address of the user
- Enter the password
- Confirm the password
- Enter the first name of the user
- Enter the last name of the user
- Submit
The company name is also linked so you can get a view of all of the information about that individual company including all of their magazines and all of their active tasks.
The red circle with the plus is the button to add a task to that magazine.
Note: The magazine's card will be red if a task in the magazine is currently road-blocked. Otherwise it will be white.
Each magazine will have it's own card. The red circle with the plus sign is to add a task to that magazine.