Our project is a Harry Potter themed fortune-telling application. It can provide user the exact experience whether they are a fan or simply seek answers that might align with their personality.
There are four Hogwarts Houses in our app: Gryffindor, Slytherin, Ravenclaw, Hufflepuff. User can select their house or be randomly assigned to a house, and the answer to their fortune-telling question will be based on the corresponding theme of each house.
The apps list of answers are targeted towards yes and no questions.
Professor Powell and our TA Gagan are the key stakeholders involved in this project. They have a vested interest in our project’s success and can provide guidance, evaluation, feedback, and support throughout the development process.
We are using JavaScript, HTML, and CSS for implementing this project project. JavaScript is the primary programming language used for implementing this project. We also leverage the Shadow DOM feature in JavaScript to encapsulate and isolate the components of our application, providing improved modularity and preventing CSS and JavaScript conflicts.
We are using Github as our version control system. cse110-sp23-the132Debuggers
repository is the source of our project, documentation
repository stores the documentation of our code in its deployed github page.
Detail of requirements could be found in Codebase and Version Control section.
We are using openai
api to generate the answer for users’ fortune-telling questions.
We first used miro to brainstormed what theme our app should have and which features are the most important ones to have.
We have both design team and dev team in our team. The design team used figma to design details of each page of our app and the navigation between them. Furthermore, we also have the wireframes of the design stored in our repo underspecs/interface/.
Since we used shadow DOM feature in JavaScript for implementation, our app has reusable components stored in source/components like headers, buttons, and pages. We also have useful global functions stored in source/js directory including the navigation between each page components.
There is no specific IDEs or tools for our project, but we are using prettier
and eslint
to enforcing code style and quality, jest
for performing tests, and jsdocs
for documentation generation. You can simply run npm install
to install the necessary packages to run the necessary scripts for the project.
The main
branch is never a place we want to push
directly, and it is thereby protected. If you try to push to the main
, the push will prompt an error. Please checkout to your own branch that has name in type/your-github-id/description
format in order to contribute.
There is no restriction on commit messages, that being said, your commits on your branch will be squashed to one commit with the pull request (PR) title as the commit message. In order to make sure we have a linear, simple-to-track commit history, the repository has employed checks for PR titles. The PR titles have to follow this convention. Each PR should also include a informative description by appropriately fill the PR template for easier tracking progress.
After making a Pull Request, at least one approving review by other team member is required to merge it to the main branch.
We are following the eslint code style rules, and we are using prettier
and eslint
to enforce and check the code style.
Locally in editor, you should run npm run fix
before committing any js code file. This is the same as npm run prettier --write . && eslint --fix .
and will automatically fix the code style of the .js
files.
While our current testing coverage is limited, we have a strong intention to enhance it by incorporating both unit tests and end-to-end tests. These testing strategies are a priority for us, and we are still actively working towards their implementation.
We have our CI/CD documentation which documented the CI/CD pipeline in Github Action that is currently in use in our repo. We basically the following implemented in Github Action:
We have documented every architectural decisions in the /specs/adrs directory.
The documentation of our js files are stored in the deployed github page of another repo in team’s github organization that can be access from here.
We use slack as our main communication tool. According to the When2Meet we filled at the beginning of the quarter, we also have our routine meeting at 1-4 pm on Saturday or 2-4 pm on Sunday every week. The meeting minutes could be found in /admin/meetings directory.
This is the team page for the132Debuggers. You can get to know each team member from there.