SquadMate was built to address the challenges a team manager faces regarding communication between themselves and the teams they lead.The application stores data on member registration, medical information and any important documents needed to be prepared for upcoming events. This application can be used by a wide variety of groups for different events.
- Carousel
- Konami Code
- Document Upload
- File-system Routing
- User Profile Picture
- Breadcrumb Navigation
- Built-in Markdown Page
- Built-in CSS(Less) Support
- User Log-in, Sign-up and Log-out
- Custom Designed and uploaded Logo
- Print Function and icon for Emergency Cards, including a QRCode
- Made use of a Master Component Layout with Integrated Components file system
To install SquadMate use npm install:
Front-End: Repo
Back-End: repo
- MongoDB
- Express
- React
- Node.js
- Material UI
- Custom Styled Components
Custom Secured Data usage.
Deployed@SquadMate
Sign-in and/or Sign-up. There is an admin and user option, each having their own documentation privileges to navigate to with buttons. Administration will have ability to upload documents and print team emergency cards. User will have ability to update emergency card information and complete forms needed by admin.
Administration | Home Landing | Team User
------------------------- ------------------ ------------
Admin HomePage | Sign-in Button | User HomePage
AdminProfile | Sign-up Button | UserProfile
GetCardInfo | Log-out Button | InitialForm
TeamList | Picture Carousel |
UserCard | Documents |
EmergencyCard | Lists |
PermissionsComponent | |
- Team Chatrooms.
- Calendar integrations.
- Coach and Manager Notification Board.
- Turn the Custom Application into more widely used app.
- Random Picture Display of the Events, Teams or Individual players.
- AuthO is a third(3'd) party HIPPA approved and compliant identity management system.
- Ability to give message alerts to parents if a telephone number or signed off form is incomplete.
- Time managing the two(2)-week sprint with all the features we would have liked to include in the project.
- Five(5) developers branching off to build features that were dependant on each other.
- Working with a team of developers on Zoom meetings across the USA and meeting for the first time.
- The ability to update a Profile Photo.
- Communication between team when pushing up code from a branch without merge conflicts was incredibly efficient.
- Applied the knowledge form the sixteen(16)-week coarse at DigitalCrafts Bootcamp to incorporated that knowledge into using MangoDB Database we did not cover during class.
- Full-Stack Developer:Brittani Ericksen Front-End, LOGO-Design and WireFrame Layout.
- Full-Stack Developer:Justin Gardner Back-End, Design-Styles and Design-Ideas.
- Full-Stack Developer:Chris Owens Back-End, Design-Implementations and Deployment.
- Full-Stack Developer:Ryan Schniederjan PM/Scrum Master, including coding and LayoutWireFrames.
- Full-Stack Developer:Annemarie Thomas Front-End, Master Layout Components and ReadMe-Files.
Frontend Design & Backend Build
- Git and GitHub Commits, Merges and Branching.
- Firebase Google Storage.
- Used Trello as our guide for completing tasks from: To Do, Doing, Done.
- Trello provided the ability to have up to date communications on our project for all group members.
- Made use of collaborating on LiveShare VSCode when code-along was necessary for portions of the project.
Data Base:
const connectDB = require('./config/db.js');
connectDB();
const mongoose = require('mongoose');
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useUnifiedTopology: true,
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
});
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (error) {
console.error(error);
}
};
module.exports = connectDB;
Team Model:
const teamController = require('./routes/teamRoutes.js');
app.use('/team', teamController);
const Team = require('../models/teamModel');
// Get All Teams
router.get('/', async (req, res) => {
const team = await Team.find({});
res.json(team);
});
const mongoose = require('mongoose');
const teamSchema = mongoose.Schema(
{
teamName: {
type: String,
required: true
},
}
);
const Team = mongoose.model('Team', teamSchema);
module.exports = Team;
Cors:
const cors = require('cors');
const corsOptions = {
origin: '*',
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
preflightContinue: false,
optionsSuccessStatus: 204,
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers':
'Origin, X-Requested-With, Content-Type, Accept',
};
app.use(cors(corsOptions));
These great services support SquadMate's core infrastructure: