If you want to try the site but do not wish to create an account, sign in using these credentials:
- Email:
[email protected]
- Passowrd:
Gu3$t
BootcampFu is a question/answer forum for Trilogy coding bootcamp students. Students can create accounts and post questions and answers to topics related to the Trilogy curriculum. Users are also able to upvote or downvote questions and answers to reflect whether they thought that particular post was helpful to them. Inspired by Stack Overflow.
- express - Web Server
- express-handlebars - Generating HTML pages
- mysql - Database
- Sequelize - Object-relational mapping with MySQL
- Passport.js - User authentication
- express-session - Tracking session data for login
- bcrypt - Encrypting user passwords
- connect-flash - Store messages in sessions i.e. "Email already taken"
- dotenv - Create an environment file for hiding sensitive data
- SASS - Style sheet language for building CSS
- jQuery - DOM manipulation and AJAX
- Font Awesome - Icons
- code-prettify - Syntax highlighting for code snippets on HTML pages
The main challenge was coming up with a concept and building a minimum viable product within two weeks. After our group discussed a number of different ideas, we all settled on something that we thought we could accomplish in that time frame.
Group work comes with its own challenges. We had to mitigate tasks based on our individual strengths, and communicate regularly. Stand-up meetings were conducted every day or two in order to ensure that all team members were communcicating and coordinating effectively.
We used a number of technologies in this project that we were previously unfamiliar with. As a result, a good deal of time was spent reading documentation.
Designing the database schema for the overall website was a challenge as it was more complicated than previous projects. It helped tremendously to map out the tables and their relationships before defining them.
- Display user's questions and answers on dashboard and allow them to update or delete their posts
- Account management for changing email, password, etc.
- Interface enhancements
- Notifications/Alerts
- GET
/api/users
returns JSON object containing all users in the following format:- username
- id
- status
- Questions (array)
- Answers (array)
- GET
/api/users/:id
returns JSON object conataining the above information for the user with id of:id
- GET
/api/questions
returns JSON object containing all questions in the following format:- id
- title
- text
- score
- topic
- createdAt
- updatedAt
- UserId
- User
- Answers (array)
- GET
/api/questions/:id
returns JSON object for the question with id of:id
- GET
/api/questions/topic/:topic
returns JSON object for all questions for a particular topic in the above format. Current topics include:- HTML
- CSS
- JavaScript
- Firebase
- Node
- Express
- React
- GET
/api/questions/:questionId/answers
returns JSON object for all answers to the questions with an id of:questionId
in the following format:- id
- text
- score
- createdAt
- updatedAt
- QuestionId
- UserId
- User
- Question
- GET
/api/questions/:questionId/answers/:answerId
returns JSON object for answer with id of:answerId
belonging to question with id of:questionId
- Open terminal to directory you wish to clone into and run
git clone https://github.com/Dylan-Thomson/BootCampFu.git
- Install modules by running
npm install
- Create a MySQL database using
schema.sql
using MySQL workbench or another tool of your choice - Create a
.env
file with the following lines:- LOCAL_DB_PASSWORD = "your-database-password"
- SESSION_SECRET = "your-session-secret"
- Run the application by entering
node server.js
into your terminal - Open browser and type
localhost:3000
(or whatever port number you are using)