BouQuet project is the group assessment of Advanced Internet Programming in Spring 2017 at UTS. BouQuet application is the HR agency web application where job seekers can post their resumes and employers can search the resumes of potential employees.
https://aipbouquet.herokuapp.com/
This project is created by UTS students Roman and Ming.
- Sign in, Sign up, Sign out, Password Reset (Email)
- Users need to create an account and log in to create their resume.
- Create, View, Search, Edit and Delete
- Registered users can create their resumes.
- Administrator can edit and delete resumes.
- Everyone can search for resumes.
- The app is integrated with a Twitter.
- The administrator can publish the links for the resumes on twitter account.
To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. You will also need to install and run a Mongo DB. From your command line:
# Go into the Mongodb installation bin folder
$ cd $mongodb_root_path/bin
# Run the Mongodb
$ ./mongod
# Clone the repository
$ git clone https://github.com/r0manski/bouquet.git
# Go into the repository
$ cd bouquet
# Install dependencies
$ npm install
# Run the app
$ npm start
For the sake of security in this project environment variables are stored in the .env. The following lines should be created for this file with your variables instead of "...". The * comments should be removed from the .env file.
//twitter developer's vars
JWT_SECRET=...
CONSUMER_KEY=...
CONSUMER_SECRET=...
ACCESS_TOKEN=...
ACCESS_TOKEN_SECRET=...
//local DB
DBURI_PROD=...
//production DB
DBURI_LOC=...
- Get Resumes - [GET] (/api/resumes)
- Return all saved resumes in json.
- Get a Resume - [GET] (/api/resumes/:resumeid)
- Get a resume based on resume id.
- Create a Resume - [POST] (/api/resumes)
- Create a resume from posted data.
- Update a Resume - [PUT] (/api/resumes/:resumeid)
- Update a resume based on resume id.
- Delete a Resume - [DELETE] (/api/resumes/:resumeid)
- Delete a resume based on resume id.
- Search Resumes - [POST] (/api/resumes/search)
- Search resumes from posted keyword.
- Register a User - [POST] (/api/register)
- Register a new user from posted data.
- Sign in a User - [POST] (/api/login)
- Sign in a existing user from posted data.
- Send a Twitter - [POST] (/twitter/:resumeid)
- Send a Twitter from posted data.
- Send a Password Reset Email - [POST] (/forgot)
- Semd a password reset email from posted email address.
- Reset a password - [POST] (/reset/:token)
- Reset a password based on token.
- Validate the input data
- Handle error friendly
- Keep code readable
- Code should have minimal dependencies
- Proper indentation
- Declare a variable before using it
- Eliminate unnecessary resources/tags
- Follow name conventions (e.g. variable/object: changeColor, class/method: InputManager)
- Logical ordering
- Provide good documentation
- Provide good annotation
- Modular design
- Minimize coupling
- Do not repeat yourself (DRY)
- Password must be encrypted
In general, we welcome anyone who can help us improve our code! You can follow the below steps to start:
- Fork the project first
- Clone the project to your own system
- Work on your fork
- Make your changes and comments
- Add changes to README.md if needed
- Commit changes to your own branch
- Make sure you merge the latest version from "upstream" and resolve any conflicts if there is
- Push your work back up to your fork
- Submit a Pull request so that we can review your changes
This project is licensed under the MIT License.
-
There are several open sourced frameworks and packages we used in this project, including:
- Express.js (https://github.com/expressjs/express)
- Helmet (https://github.com/helmetjs/helmet)
- Validator (https://github.com/chriso/validator.js/)
- Passport (https://github.com/jaredhanson/passport)
- Twit (https://github.com/ttezel/twit)
- JQuery (https://github.com/jquery/jquery)
- Bootstrap (https://github.com/twbs/bootstrap)
- Popper (https://github.com/FezVrasta/popper.js)
-
There are two background images downloaded from Pexels (https://www.pexels.com/)