Huskypal is an application that allows students to explore and experience UW’s various activities and programs through an interactive and rewarding system. The HuskyPal application will include a virtual pet that allows users to further explore a variety of interests through their “Trait Track”, and users can pick a trait for their HuskyPal to be given a customized set of challenges and rewards that relate to their respective trait, which can also be shared with other HuskyPal users.
HuskyPal aims to transform the UW student experience by making campus exploration more interactive, rewarding, and fun. It's about creating a sense of community, enhancing personal growth, and encouraging active participation in campus life through a digital-physical hybrid experience.Stay tuned for updates as we bring HuskyPal to life, and get ready to embark on your very own UW adventure with your new Husky companion!
Team Member | Role | Responsibilities |
---|---|---|
Fana Hagos | Frontend/Backend + Design | - Develop track selection, homepage, and challenge suggestion pages - Testing - Some backend |
Ramla Abdi | Backend/Frontend | - Implement level system for user challenges - Backend and frontend tasks related to challenge tracking |
Kianna Bolante | Frontend Design | - Design frontend interfaces - Work on closet pages |
Fatuma Meshalla | Backend/Frontend | - Implement login and registration and social connect, pages - Database setup - Testing - GitHub setup |
- Download Visual Studio Code
- Clone the repository
git clone
https://github.com/kiannabolante/huskypal.git
- Open a terminal under the root directory(i.e huskypal)
- Run
cd client
- Run
npm install
to make sure all packages are ready for frontend - Run
npm run start
- [Download MongoDB Compass (https://www.mongodb.com/docs/compass/current/install/)
- When signing in for compass use path: (mongodb://127.0.0.1:27017/husky_db)
- Install an extension on VS Code: Thunder client
- Open a terminal under the root directory(i.e huskypal)
- Run
rm -rf node_modules
- Run
rm package-lock.json
- Run
cd server
- Run
npm init -y
- Run
npm install
- Run
npm i express mongoose
- Run
npm install bcrypt jsonwebtoken
- Run
npm install cor
- Run
nodemon server.js
We use GitHub Actions to automatically run our tests every time we make changes to our code on GitHub. This way, we catch any issues quickly before they become a problem.
- Signup and login into github.com
- In repo, create a folder .github/workflows
- Actions tab, click ‘set up a workflow yourself’
- Can name the yaml file anything
- In the folder, create a YAML file with a .yml extension
- In YAML, syntax and spacing is very important so be careful of any copy/paste
- Look up ‘yaml formatter’ on google for help
- Yaml formatter: https://codebeautify.org/yaml-beautifier
- Add the content of the workflow in the file
- Commit and push the changes
- Got to the repo main page and click the ‘Actions’ tab
- Select the workflow from left sidebar and check the logs and results
- Visual Studio Code: Integrated Development Environment (IDE)
- Git, GitHub: Version control system and hosting platform for repositories
- npm: Package manager for JavaScript
- ThunderClient: API testing tool
- Chrome: Web browser for testing
- Node.js: JavaScript runtime environment
- Mongodb Express: Web application framework for Node.js
- CORS (Cross-Origin Resource Sharing): Mechanism that allows restricted resources on a web page to be requested from another domain
- MongoDB Compass: GUI for MongoDB
- Component-based architecture: Divides the UI into reusable components
- Virtual DOM for performance: Improves efficiency by updating only changed components
- Reusable and maintainable code
- CSS: Cascading Style Sheets
- Bootstrap: Front-end framework for designing websites and web applications
- Google Fonts: Library of free licensed font families
- Unit Testing with Jest
- Component Testing with React Testing Library: For testing React components
- Frontend validation
- Node.js (Express - if applicable): Server-side JavaScript framework
- JavaScript: Programming language
- Database: MongoDB: NoSQL, document-oriented database
- Flexible schema, scalability
- Unit Testing with Jest
- Mocha: JavaScript testing framework
- Backend Validation Tests
- MongoDB Data Validation