Currently in Development
Code Notes is a dynamic CRUD web application built for web development students to organize their notes, documentation resources, flash cards, and code examples in one central app.
- Maintained by:
John Nguyen
,Adam Botma
,Jingwen Wu
,Maison Keiser
- Used React.js to create all HTML elements (virtual DOM) to dynamically display data received from the PostgreSQL database via API server created using Node.js
- Used Express to retrieve user's notebook data
- Used Amazon Web Services EC2 for web, API server, and PostgreSQL database
- React.js
- Node.js
- Express
- PostgreSQL
- Webpack 4
- Bootstrap 4
- HTML5
- CSS3
The client can send GET requests to the server, and in return can receive and display the data in HTML format to:
- View all available notebooks
- View all available notes of a particular notebook
- View a note, along with difficulty, added resources and code examples, if any
- Search for a note by providing a note title
- Search for a note by providing a note tag
- Search for a note by difficulty
- View all available flashcard decks
- View/study all available flashcards of a particular deck
- Search flashcards by providing a tag
The client can send POST requests to the server to add to the database, and in return can receive and display the data in HTML format to:
- Create a new notebook
- Create a new note for a particular notebook
- Add difficulty, tags, resources, and code examples to a note
- Create a new flashcard for a note
The client can send PUT requests to the server to update the database, and in return can receive and display the data in HTML format to:
- Update a note, along with its difficulty, added resources and code examples, if available
- Delete a note
- The app can be properly viewed on the desktop and on an iPad in landscape mode.
- Accessing the local storage using React.js functions and dynamically display data using React.js virtual DOM functions
- Creating a basic yet responsive user interface using React.js and Bootstrap 4
- Leveraging Object Oriented Programming to organize code into components
- Creating an API server using Node.js to process requests from and send data to the client
- Storing and handling session data using Express session
- Experienced the full development process in a team environment by:
- prototyping the visual design through Figma
- designing a database schema on DB Designer and creating it with PostgreSQL
- overall project management on MeisterTask
- collaborating on a single codebase through pull requests, code review and resolving code conflicts on GitHub
- deploying the web and API server into AWS EC2.
- Ubuntu Linux 18.04 LTS
- Node.js 10
- PostgreSQL 10
- pgweb
- NPM 6
- Clone the repo
git clone https://github.com/johnnguyencodes/code-notes.git
cd class-notes
- Install all dependencies with NPM
npm install
- Import the example database to PostgreSQL
npm run db:import
- Create a .env file in the root directory and paste in the following:
PORT=3001
DEV_SERVER_PORT=3000
DATABASE_URL=postgres://dev:lfz@localhost/classNotes
SESSION_SECRET=secret
SESSION_EXPIRY=28800000
- Start the PostgreSQL service
sudo service postgresql start
- Start the server
pgweb --db=classNotes
- Start the project. Once started, you can view the application by opening http://localhost:3000 in your browser.
npm run dev
- The live version of the app can be viewed here.
- Desktop