Team members : |
---|
Shawn(baymax@bu.edu) - Team leader |
Dawei(davidyin@bu.edu)- Design and Implementation leader |
Lijian(yao049@bu.edu) - Configuration leader |
Alex(alexrw@bu.edu)- Security leader |
Siming(s1a1d1f1@bu.edu)- Requirement Leader |
Haiyang(whaiyang@bu.edu) - QA leader |
Our project is making a team assign tool that can automatically assign students to a team, which involves the concepts of front-end, back-end, database and so on. We named it "iGroup". The main idea of the Team assignment tool is to help create teams based on students preferences and background. For this application, we choose Python as our development programming language, and use Django as framework. Algorithmically, we weight different preferences to create the most appropriate team.
Iteration Process |
---|
Iteration 0 : 09/07/2022 - 09/21/2022 |
Iteration 1 : 09/22/2022 - 10/20/2022 |
Iteration 2 : 10/21/2022 - 11/11/2022 |
Iteration 3 : 11/12/2022 - 12/10/2022 |
Login,logout, save account data in backend database
Create and Delete (Instance,Survey,Questions,Options)
Import and uplode Data
Lock the Survey and Create Survey link to students
Run the Algorithm base on the collected data
Save the all results of team assignment
$cd source_code
$cd web
$pip install -r requirements.txt
$python manage.py makemigrations (First time run, Don't need)
$python manage.py migrate
$python manage.py runserver 8000
Step 4 - Open browser and visit URL: http://127.0.0.1:8000/
HTML: Front End building block
CSS: Front End building block
Javascript: used for more dynamic elements in front end
Django : Default
Django : Framework
Pure Python : Algorithm part
Git/Github: Version control tool
Pivotal Tracker: Project Management
Django : SQLite
.CSV file : Analog Data
In our iGroup application, Since we have adopted the agile methodology as the development process, we mainly focus on developing the local application at this iteration, with using local file systems as our persistent data storage. Within the iGroup system, the user needs to use the account system to gain access to create surveys and send the survey to students, which the student responds to and creates the student account in the system. Then the instructor can gather the response from the students and call the allocation system to do the team allocation corresponding to the parameter that instructor assigned before the allocation.
For the process of the algorithm, the first step is to randomly assign all the students into different groups, and then calculate the score of each team (the part of calculating the score here uses the team-maker algorithm). After the score of each group is obtained, the group with the second highest score and the group with the lowest score will swap the team members and calculate the score again, until the new score of both groups has improved, and then confirm to switch the team members. After 20 rounds of this, all the groups were formed. (The Gale-Shapley Algorithm used here)
https://docs.google.com/spreadsheets/d/1oXajwHWtP0rqrXSfCWsf2NTtd7TqJNTJ5b6tWfP5csk/edit
Version Control: Git,Github
Front end: VS Code(HTML,CSS), Pycharm (Django Defaults)
Back end: PyCharm (Python)
Framework: Django
Database: Django(SQLite)
CI/CD:TeamCity(optional)
During development, we each have our own branch of development. Also, we created some special branches for important features.
Please refer to this link: https://www.geeksforgeeks.org/coding-standards-and-guidelines/ Our standards will be based on the contents in this link.
Team members review each other’s code. We will make sure we all review code that is not from ourselves. We will use pull requests for the code review, to make sure there is no conflict. Recently we don’t have a checklist that everyone must do, but we do require the reviewer to give feedback about cleanliness, clarity and bugs.
Testing Plan |
---|
Unit Test |
Integrate Test |
System Test |
Acceptance Test |
Regression Test |
https://github.com/BUMETCS673/BUMETCS673A1F21P3
https://docs.google.com/forms/d/e/1FAIpQLSfkskHnSJLweJSulYyeBenhNPSyzHkQTRW6wzakM_Ffb3gJFA/viewform
https://docs.google.com/document/d/1PzFrv9GLrKaXZP46fl1S_kaAev4Gb6BcfAxBUfSvNSs/edit
https://drive.google.com/drive/u/1/folders/1BBafMsvOnvsn76p2TktR9ZJ1NIbP4Eg5