---
# System prepended metadata

title: Project documentation template

---

---
title: 'Project documentation template'
disqus: hackmd
---

ICAF Project - Conference Management Tool
===

* ### Team Members
1. Hariscumar [Team Leader]
2. Lumini
3. Thushan
4. Akash

* ### Useful Links
   
    * backend repository
        `https://github.com/kaveenakash/ICAF_Backend`
    * frontend repository
        `https://github.com/kaveenakash/ICAF_Frontend`
    
    * npm package manager
        `https://www.npmjs.com/`
     
    * material ui 
        `https://material-ui.com/`
    * material ui icons 
        `https://material-ui.com/components/material-icons/`
    * Images Host link
        `https://code-base.imgbb.com/`

    * MongoDB host 
        * admin name - ICAF_admin
        * admin password - ICAF_123
        * cluster name - ICAF
        * Database name - ICAF
        * `mongodb+srv://ICAF_admin:ICAF_123@icaf.w04n0.mongodb.net/ICAF?retryWrites=true&w=majority`
## Technologies
* React js
    * axios
* Node js - v14.16.1
    * nodemon
    * cors
    * mongoose
    * express js
    * dotenv
* Mongo DB
    * Mongo Compass
* Git Version control system
* Github
* jwt authentication
* Material UI components
* JEST - for testing


## System Details
* Four roles 
    1. Admin
    2. Editor
    3. Reviewer
    4. User

#### Required Pages
* Landing Page
* Download Page
* Workshops
* Research Paper Precentations
* Registration Page
* Contact Us Page
* Login Page

#### Accessability
* Anyone can view the conference details as a guest
* Only users who register have access can submit the research papers, conduct workshops, or present their research-related activities
* Editors can add the conference details and edit
* Admin must approve the editor's content before it appears on the website

#### functionalities
- [ ] A landing page that shows all the related information including venue and date
- [ ]  Download page where the research paper templates, workshop Power Point templates, and other templates can be download.
- [ ] Separate pages for each of the main events in the conference. (Research paper presentations, workshops, etc.)
- [ ] A registration page where a user can be registered as a researcher, workshop presenter, or attendee
- [ ] When the researcher registered to the system, the research paper should be uploaded alongside the contact information
- [ ] When the workshop conductor is registered to the system, a proposal containing all the necessary details about the workshop should be uploaded alongside the contact information.
- [ ] When the user is registered to the system all the necessary contact information should be uploaded

#### Conditions - Implement
* Reviewers should be able to see the research paper uploads and workshop detail uploads in separate pages. The uploads must be available to view.
* Reviewers can approve or decline the research papers or workshop proposals. And notification should be sent to the relevant user
* Attendees must pay upfront to register for the conference (you can come up with the amount)
* Research paper presenters must pay if their papers got approved to present them at the conference
* Workshop conductors don’t have to pay
* Admin should be able to monitor all these activities in a dashboard (you can decide the format)


## Project Deliverables
* A user guide should be provided.
* A technical report describing your project should be provided.
* Deploy the project to the Cloud before the final presentation. Your final demo should be run from the Cloud. 


## Front-end React Application
* **Base Sturucture Commands**

     create package json file
                `npm init -y`
     installed packages
                 `npm install parcel@next --save-dev`
                 `npm install react react-dom --save`
                 `npm install @material-ui/core`
                 `npm install @material-ui/styles`
                 `npm install @material-ui/icons`
                 `npm install axios`
                 `npm install react-router-dom`
                 `npm install @material-ui/lab`
                 
## Back-end Node js Application
* **Base Sturucture Commands**
    Create Package json file 
       `npm init -y`
    installed packages
        `npm install mongoose express cors dotenv`
    devdependies
        `npm install --save-dev nodemon`
    
    
    
    

