Skip to content

pillious/Acaply

Repository files navigation


Acaply

An online forum for students.

View Demo

Table of Contents

💡 About the Project

App Screenshot

Motivation

My motivation for building Acaply was to primarily understand the interactions between the server side and client side portions of a feature-dense application.

Challenges

The most challenging aspect of the project was handling user authentication and managing user sessions. I learned how to setup secure signup, login, session, and password reset features. In addition, with the help of mongoose and bcrpyt, I also understood how to store user data and hash account passwords.

Built With

  • Server: Node.js/Express, Javascript, Mongoose
  • UI: HTML, CSS, EJS.
  • Database: MongoDB
  • Other: SendGrid, Vercel, MongoDB Atlas

(back to top)

Architecture

Application Architecture
Application Architecture

Database Structure
Database Structure

(back to top)

🚀 Getting Started

Live Demo
To get a local copy up and running follow these steps.

Prerequisites

  1. NPM is required to run this project.

    npm install npm@latest -g
  2. Create a free MongoDB database using Atlas.

Installation

  1. Clone the repo
    git clone https://github.com/pillious/Acaply.git
  2. Install NPM packages
    cd Acaply
    npm install
  3. Create a .env file inside the root directory.
  4. Add environment variables to .env
    DATABASE_USERNAME=[your_mongodb_atlas_username]
    DATABASE_PASSWORD=[your_mongodb_atlas_password]
    USER_SESSION_KEY=[encryption_key*]
    SENDGRID_API_KEY=[your_sendgrid_api_key]
    RESET_PASSWORD_EMAIL_ID=[sendgrid_email_id]
    * Randomly generate encryption key
  5. Run the project on localhost:3000
    npm start
    Deploy using Vercel

(back to top)

⚖️ License

Distributed under the MIT License. See LICENSE.txt for more information.

🎯 Contact

Andrew Lee (pillious) - [email protected]
(My Website)

(back to top)

About

An online forum site for students.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors