Skip to content

Software Engineering Studio 3A - Group Assignment.

Notifications You must be signed in to change notification settings

anjalikalambe/date.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

date.io (SES3A)

Before Starting

  • Make sure you have Node installed

Mac Users

Skip Straight to 'Getting Stared'

Windows Users

Set Up WSL on your (not needed but it will make life much easier for you) - This guide can help you https://ubuntu.com/wsl



Getting Started

Please follow the following guide to help you set up the project :)

STEP 1 Update Node

Command: npm install -g npm@7.21.0



STEP 2 Clone Repo

NOTE: Make a local directory/folder (in like your documents or desktop) to clone the project and then run 'git clone' based on your git configuration (most would not have SSH set up so do the HTTP method)

Command - Option 1 (HTTP): git clone https://github.com/anjalikalambe/SES-3A.git Command - Option 2 (SSH): git clone git@github.com:anjalikalambe/SES-3A.git



STEP 3 Install Packages Part 1/2

NOTE: CD into '/backend'

Command: npm i - (this can take a few min)



STEP 4 Install Packages Part 2/2

NOTE: CD back to the main SRC folder by typing 'cd ..' and then CD into '/client'

Command: npm i - (this can take a few min)



Python / Flask Setup

STEP 1 Install Packages Part 1/2

NOTE: Launch CMD or Terminal and check if you have python3 installed with the following command: python --version

If a version DOES show up, please skip to STEP 2.

PC: If not please run the following command: 'python'. This will take you to the windows store, choose python 3.9 and click 'get' and that should install MAC: https://www.python.org/downloads/release/python-397/ download and install this



STEP 2 Install Packages Part 2/2

Go into the 'flask-server' directory and type the following command in CMD or Terminal 'pip3 install Flask'

To Run Jupyter notebook, type the following command 'python -m notebook'. This will launch a local host, make your way to the 'user_match_model.ipynb' file and proceed to run the python file



Jupyter Setup / Run

STEP 1 Locate Python Path - Part (1/2)

Launch cmd / terminal and type 'where.exe python'. Once found cd into this directory and type the following pip install notebook



STEP 2 cd into the ML directory & run - Part (2/2)

To Run Jupyter notebook, type the following command 'python -m notebook'. This will launch a local host, make your way to the 'user_match_model.ipynb' file and proceed to run the python file



Python venv and package management

STEP 1 Setup and run venv

To create a new virtual environment, run 'python -m venv /path/to/venv'

To activate the venv, run 'source venv-path/bin/activate' or 'venv-path\Scripts\activate' on Windows.



STEP 2 Install Python Packages

With venv activated, in the flask-server directory, run 'pip install -r requirements.txt'

If new packages have been installed, in the flask-server directory, run 'pip freeze > requirements.txt'



STEP 3 Running Flask separately

To run the Flask server alone, in the flask-server directory, run 'python server.py'

Press CTRL-C to close the server.



Running The Application

NOTE: Make sure you are in the '/client' directory to run the application

Start Backend and Client (front-end) together - Easier Option\

npm run dev

Run Back-end and Front-end Separately

  1. Back-end Server: Go to '/backend' and run npm start - This will trigger the server
  2. Front-end Server: Open a new/second teminal/cmd window in parallel with the server and go to '/client-backend' and run npm start - This will trigger the client/front-end


Build and Deployment Rules

To ensure we follow a clean and efficient development methodology, we will follow the three-tier branch approach when applying changes. This includes the following:

master
    ┣━━ feature
           ┗━━ task

Features are marked as epics on Jira. Create a feature branch after checking Jira epic.

Branch Rules

Branch Naming Convention Example
Master master master
Feature feature-* feature-login
Task task-* task-login_button

Master

The Master Branch will be used as the final product.

  • IMPORTANT NOTE - No direct changes will be made on this branch**

Feature

The Feature Branch will stem off the Master Branch and will act as a topic branch. For example, if a new component such as a login feature is to be implemented, a feature branch must be created.

Task

The Task Branch will act as the child branch of the Feature Branch to which content can be added. Different goals MUST be spread across other Task Branches. Once the goal is met, branches will be merged into the feature branch via an approved Pull Request (PR). For example:

  • Task 1: Create a Login button - Once completed and the PR is approved, this will be merged into the 'feature-login' branch
  • Task 2: Change the font size on the login screen - Once completed and the PR is approved, this will also be merged into the 'feature-login' branch.

Misc Information

Enter Misc information here - testing