All Projects → ankitgyawali → Checksheet Manager

ankitgyawali / Checksheet Manager

Checksheet Manager for college checksheets. Created with AngularJS and Node/Express/MongoDB.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Checksheet Manager

Mean Stack Angular6 Crud Example
MEAN Stack Angular 6 CRUD Web Application
Stars: ✭ 69 (+122.58%)
Mutual labels:  mongoose, mongodb, expressjs, angularjs, webapp
Angular2 Express Mongoose Gulp Node Typescript
AngularJS 2 (Updated to 4.2.0) Mean Stack application which uses Angular2, Gulp, Express, Node, MongoDB (Mongoose) with Repository Pattern Business Layer
Stars: ✭ 201 (+548.39%)
Mutual labels:  mongoose, mongodb, expressjs, angularjs
Mean Angular5 Passport Authentication
Securing MEAN Stack (Angular 5) Web Application using Passport Authentication
Stars: ✭ 24 (-22.58%)
Mutual labels:  mongodb, expressjs, angularjs, webapp
Mean Stack Angular5 Crud
MEAN Stack (Angular 5) CRUD Web Application Example
Stars: ✭ 107 (+245.16%)
Mutual labels:  mongodb, expressjs, angularjs, webapp
Angular Full Stack
Angular Full Stack project built using Angular, Express, Mongoose and Node. Whole stack in TypeScript.
Stars: ✭ 1,261 (+3967.74%)
Mutual labels:  mongoose, mongodb, expressjs, angularjs
Mean Angular4 Chat App
MEAN stack with Angular 4 Chat App
Stars: ✭ 41 (+32.26%)
Mutual labels:  mongoose, mongodb, expressjs, angularjs
Angular Cms
An flexiable, extendable, modular, single CMS app based on Angular, Express, MongoDB
Stars: ✭ 109 (+251.61%)
Mutual labels:  mongoose, mongodb, expressjs
Nodejs Rest Api Project Structure Express
Nodejs project structure practices for building RESTful APIs using Express framework and MongoDB.
Stars: ✭ 134 (+332.26%)
Mutual labels:  mongoose, mongodb, expressjs
Express Es6 Starter
Starter project for creating a MVC express server with MongoDB
Stars: ✭ 178 (+474.19%)
Mutual labels:  mongoose, mongodb, expressjs
Node React Ecommerce
Build ECommerce Website Like Amazon By React & Node & MongoDB
Stars: ✭ 1,080 (+3383.87%)
Mutual labels:  mongoose, mongodb, expressjs
Tm Crm erp
DEPRECATED
Stars: ✭ 196 (+532.26%)
Mutual labels:  mongoose, mongodb, angularjs
Bookmarks.dev
Bookmarks and Code Snippets Manager for Developers & Co
Stars: ✭ 218 (+603.23%)
Mutual labels:  mongoose, mongodb, expressjs
Nodejs Backend Architecture Typescript
Node.js Backend Architecture Typescript - Learn to build a backend server for Blogging platform like Medium, FreeCodeCamp, MindOrks, AfterAcademy - Learn to write unit and integration tests - Learn to use Docker image - Open-Source Project By AfterAcademy
Stars: ✭ 1,292 (+4067.74%)
Mutual labels:  mongoose, mongodb, expressjs
Amazona
Build Ecommerce Like Amazon By MERN Stack
Stars: ✭ 152 (+390.32%)
Mutual labels:  mongoose, mongodb, expressjs
NodeExpressCRUD
Node, Express, Mongoose and MongoDB CRUD Web Application
Stars: ✭ 45 (+45.16%)
Mutual labels:  mongoose, expressjs, webapp
Nest Mean
NestJS Tutorial Repository
Stars: ✭ 250 (+706.45%)
Mutual labels:  mongoose, mongodb, expressjs
Mevn Boilerplate
A fullstack boilerplate with Mongo, ExpressJS, VueJS and NodeJS.
Stars: ✭ 277 (+793.55%)
Mutual labels:  mongoose, mongodb, expressjs
Mean Blog
Blog using Nodejs, Expressjs, Angularjs and Mongodb. MEAN Javascript Fullstack application
Stars: ✭ 151 (+387.1%)
Mutual labels:  mongodb, expressjs, angularjs
Meantorrent
meanTorrent - MEAN.JS BitTorrent Private Tracker - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js, A BitTorrent Private Tracker CMS with Multilingual, and IRC announce support, CloudFlare support. Demo at:
Stars: ✭ 438 (+1312.9%)
Mutual labels:  mongoose, mongodb, angularjs
Builderbook
Open source web application to learn JS stack: React, Material-UI, Next.js, Node.js, Express.js, Mongoose, MongoDB database.
Stars: ✭ 3,015 (+9625.81%)
Mutual labels:  mongoose, mongodb, expressjs

Checksheet-manager

Checksheet-manager is a web application that allows an educational organization to keep track of their student's progress in their curriculum. Checksheet manager works by providing different levels of access controls to three different types of user: Root users, advisors(professors) and advisee(students).

Refer to this documentation if you need help with user interface.

A demo of checksheet manager can be found at: kucm.ankitgyawali.com

The login for all three levels of users are set temporarily to:

username: a

password: asdfgh

Docker Installation

Make sure you have docker & docker-compose installed. Simply run npm install && docker-compose up -d from root of the repo. A sample application with demo data will be bootstrapped. Sample app can be accessed at localhost:3000 & docker mongodb instance can be accessed on localhost:2777. Refer to docker-compose.yml.

Login for sample docker app:

Root Username: root

Root Password: demoPassword

How it works:

Checksheet manager utilizes REST API services, to create empty checksheet prototypes, instantiate accounts in hierarchial manner (root users add advisors, and advisors add students), and link students with empty checksheet so that they can maintain their checksheet througout their edcuational career.

How to use:

Checksheet-manager has been designed in a way so that the students find it inituitive to use it. Tutorials are available throughout the web app. A detailed documentation on using checksheet-manager and discovering it features can be found here.

Issues

Report all issues related to checksheet-manager on this separate issue page.

How to build:

Checksheet manager runs as a node js application. Because we are running a web application and not traditional static files, we run node js with nginx. Running nginx and apache along side requires some researching into if you are switching from an apache only server. Below are the steps to build and run checksheet-manager on a debian based operating system. These steps were tested on Ubuntu 14.04 LTS. Start off by cloning the repository with:

git clone https://github.com/ankitgyawali/checksheet-manager.git

Install Node JS, Mongo DB and PM2 on your system. Heres a quick little script that installs node:

sudo apt-get update
sudo apt-get install git
cd ~
wget https://nodejs.org/dist/v4.2.3/node-v4.2.3-linux-x64.tar.gz
mkdir node
tar xvf node-v*.tar.gz --strip-components=1 -C ./node
cd ~
rm -rf node-v*
mkdir node/etc
echo 'prefix=/usr/local' > node/etc/npmrc
sudo mv node /opt/
sudo chown -R root: /opt/node
sudo ln -s /opt/node/bin/node /usr/local/bin/node
sudo ln -s /opt/node/bin/npm /usr/local/bin/npm

At this point node -v should give you the version of node js.

Set up your server's private ip address on checksheet-manager/server/server.js. You can get your private ip address if its set up by: curl -w "\n" http://169.254.169.254/metadata/v1/interfaces/private/0/ipv4/address While you are at it, you could set up the name of your institution on checksheet manager. You can do so by modifying the cmTitle parameter on checksheet-manager/client/configuration.js.

Install pm2:

sudo npm install pm2 -g
pm2 startup ubuntu
cd checksheet-manager/server
pm2 start server

At this point you should have node.js and pm2 installed. We now need mongodb(for database) and nginx(to run the app) on our system. There is a guide to install mongodb which can be found here. Once you are done start mongod by running, sudo service mongod start and make sure the service is running by running, sudo service mongod status.

Finall to install nginx, run: sudo apt-get install nginx. Modify your nginx parameters via: sudo vi /etc/nginx/sites-available/default The default config should look somthing similar to this:

server {
    listen 80;

    server_name yourservername.com;

    location / {
        proxy_pass http://APP_PRIVATE_IP_ADDRESS:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Restart nginx service with sudo service nginx restart. To instantiate your first root user to be able to populate more accounts, you need to insert your first root user via mongo shell. To do this execute mongo to enter the mongo shell(look for 'robomongo' if you dont want to learn mongo shell) and execute the following commands:

use ksm
db.createCollection("root");
db.root.insert({"username":"root","password":"rootPassw0rd"})

This will instantiate your first root user and you can add more accounts from that root account. You should be all set and ready to go with the login information you just inserted to the mongo database(username: root and password: rootPassw0rd).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].