Skip to content
forked from vee-alianza/Esena

Esena is a project management tool designed to optimize team workflow and collaboration

Notifications You must be signed in to change notification settings

ethanchen7/Esena

 
 

Repository files navigation

Welcome to Esena!

Esena is an application inspired by Asana where teamwork makes the dream work by organizing and facilitating collaboration among team members.

Technologies Used

JavaScript CSS3 NodeJS React Redux

Python Flask Docker Heroku

Getting started

  1. Clone this repository (only this branch)

    git clone https://github.com/appacademy-starters/python-project-starter.git
  2. Install dependencies

    pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
  3. Create a .env file based on the example with proper settings for your development environment

  4. Setup your PostgreSQL user, password and database and make sure it matches your .env file

  5. Get into your pipenv, migrate your database, seed your database, and run your flask app

    pipenv shell
    flask db upgrade
    flask seed all
    flask run
  6. To run the React App in development, checkout the README inside the react-app directory.


IMPORTANT! psycopg2-binary MUST remain a dev dependency because you can't install it on alpine-linux. There is a layer in the Dockerfile that will install psycopg2 (not binary) for us.


Helpful commands

Command Purpose
pipenv shell Open your terminal in the virtual environment and be able to run flask commands without a prefix
pipenv run Run a command from the context of the virtual environment without actually entering into it. You can use this as a prefix for flask commands
flask db upgrade Check in with the database and run any needed migrations
flask db downgrade Check in with the database and revert any needed migrations
flask seed all Just a helpful syntax to run queries against the db to seed data. See the app/seeds folder for reference and more details
heroku login -i Authenticate your heroku-cli using the command line. Drop the -i to authenticate via the browser
heroku authorizations:create Once authenticated, use this to generate an Oauth token
heroku run -a <app name> Run a command from within the deployed container on Heroku

Features

Splash Page

Users can log into an existing account, sign up or test the site by clicking on the Demo User feature.

Splash Page
Login
Sign-Up

Home Page

Navigation

  • The navigation bar is displayed on the side of the page and persists on each page.

Once the user is logged in, they can create a project, view all projects and tasks they are assigned to and click other user's profiles.

  • Clicking on "Create Project" will display a modal with a form that requires infomation to be entered
  • Clicking on a task will display a modal with the task details, that only assigned users can leave a comment on
  • Clicking on "My Projects" or an existing project will redirect the user to the project page
  • Clicking on "My Tasks" will redirect the use to the task page
  • Clicking on a user's name renders the profile of the user

Homepage
Create-Project
Task-Comment
Project Page
My-Tasks
User-Profile

Projects

A user can create a project, view the details of the project, edit and delete a project.

  • Clicking on the add-button will display modal form that requires infomation to be entered
  • Clicking on the Overview tab will display the project information
  • Clicking on the dropdown menu on the project will display an Edit and Delete option

These features are available only to the owner of the project Create-Project-Page
Single-Project
Edit-Delete-Menu

Tasks

A user can add, edit and delete a task

  • Clicking on "Add Task" will display modal form that requires infomation to be entered
  • An Edit and Delete button will only be displayed to the user that is assigned the task
  • When a task is "Marked Complete", the task will be displayed on the Completed table and the progress bar will indicate the percentage of tasks that has been completed within a project

Task-Tab
Add-Task-Modal
Edit-Delete-Task
Edit-Task-Modal
Progress-Bar

Teams

A user can add, edit and delete teammates assigned to a project

  • Clicking on the Edit button on the lower table of a task will display a modal with the teammates assigned to the task

Add-Teammate
Teammate
Add-Remove-Teammates

Profile Page

A user can edit their profile by clicking "My Profile" on the navigation bar, which will redirect them to their profile page

  • Clicking on the edit button will display modal with the user's pre-filled information

Profile
Edit-Profile

Calendar

A user can view all of the tasks on a calendar.

  • Clicking "My Calendar" with display a calander and users can view tasks by Month, Day, Year

Month
Day
Year

Comments on tasks

Whether the user is on the homepage or on "My Tasks" page, they are able to post, edit and delete a comment on a task

  • Edit and Delete button will only display to the user that has posted that comment

Task-Comment
Comments
iEdit-Delete-Comment

Page Not Found

Accessing a path that does not exist will render a page not found and redirects the user to the homepage automatically after 3 seconds 404-Page

Back to top

About

Esena is a project management tool designed to optimize team workflow and collaboration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 64.5%
  • CSS 32.4%
  • Dockerfile 1.8%
  • Other 1.3%