Giter Site home page Giter Site logo

socialgoal's Introduction

SocialGoal v1.0.0

alt text

SocialGoal is a social networking web app for socializing your goals and strategies with people. The primary objective of the SocialGoal app is to provide a learning app for building real-world web apps with ASP.NET MVC 5 and EF 6 Code First. The application architecture is inspired from EFMVC. SocialGoal is developed by Marlabs.

Technologies

  • ASP.NET MVC 5
  • EF 6 Code First
  • AutoMapper
  • Autofac
  • Twitter Bootstrap
  • NUnit
  • Moq

Patterns & Practices

  • Domain Driven Design (DDD)
  • Test-Driven Development (TDD)
  • Repository Pattern & Generic Repository
  • Unit of Work
  • Dependency Injection

Running the Application

  1. Open the solution in Visual Studio 2013. Build the solution to install Nuget packages.(This will automatically restore Nuget packages. Please ensure you have Nuget version 2.7 or higher)
  2. Open the web.config and change the connecting string "SocialGoalEntities" for working with your system.
  3. Run the application and register a new User. (Please note that currently the applictaion does not provided any pre-defined user. Earlier there was a pre-defined user named "Admin")

Please note that we have tested the app in Chrome browser. We have observed that a JavaScript Chart compoment is having browser compatibility issues with some versions of IE.

Goals and Roadmap

Overall Project Goals

  • Web app for Social Networking for soclialize your goals and strategies.
  • A reference web app for ASP.NET MVC 5 and EF 6 Code First.
  • Improve developer productivity for building web apps on the Microsoft Web stack.
  • Reference app for building Test-Driven Development (TDD) and Domain-Driven Design (DDD).
  • Mobilize an existing app for solving the mobility challenges.

Roadmap Targets

  • Build a full-fledged social networking app with enhanced UI and new features.
  • Mobilize the existing app
  • Provide an API for Mobility, by using ASP.NET Web API 2.
  • Build cross platform, minimalist mobile apps by using HTML5/JavaScript platform.
  • Build Mobile Backend as a Service (MBaaS) solution on the Windows Azure for the mobile apps.

Team

socialgoal's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

socialgoal's Issues

Is this DDD?

AFAIK DDD should be divided into bounded context and using events on its entities. Also you're having anemic models which is emphasize in DDD.

Java Issues

Hi guys,

I have just downloaded application and tried to register a user and login. When I do this I get alot of java issues

Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.barRenderer.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'BarRenderer' of undefined or null reference

Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.dateAxisRenderer.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'DateAxisRenderer' of undefined or null reference
Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.categoryAxisRenderer.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'CategoryAxisRenderer' of undefined or null reference
Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.pointLabels.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'PointLabels' of undefined or null reference
Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.canvasTextRenderer.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'CanvasTextRenderer' of undefined or null reference
Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.canvasAxisTickRenderer.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'CanvasAxisTickRenderer' of undefined or null reference
Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.ohlcRenderer.min.js

0x800a138f - JavaScript runtime error: Unable to set property 'OHLCRenderer' of undefined or null reference
Unhandled exception at line 57, column 14 in http://localhost:5002/Scripts/jqplot.highlighter.min.js

0x800a138f - JavaScript runtime error: Unable to get property 'eventListenerHooks' of undefined or null reference

Admin Login Issue

I have just downloaded the project and the Admin username and password does not work. the password I have is 123456

Unit Tests Incorrect

I'm not 100% if I am correct in this, but I believe some of the UnitTests are producing false positive results.

When CreateAsync() is called in the AccountController, it reaches into TestUserStore.FindAsync() and it always finds the user, so creation fails. Changing this to something like:

    public Task<ApplicationUser> FindByNameAsync(string userName)
    {
        foreach (ApplicationUser user in _users.Values)
        {
            if (user.UserName == userName)
                return Task.FromResult(user);
        }
        return Task.FromResult<ApplicationUser>(null);
    }

Will produce different results. The test LoginTest() succeeds because no user is created, and because user is null, RedirectToLocal is not called. UrlHelper is null in RedirectToLocal when using the above FindByNameAsync method.

Admin Dashboard

Appears to be missing controller/index, or index is corrupted, doesn't appear in your source tree, but does appear in the solution once downloaded and unzipped

can you add some cache function?

hi,
this project is very helpful for the asp.net beginner.
thanks much.

and would you add cached layer for this project?
a mostly website need to cache some data.
thanks

I faced errors on delete and insert

i faced errors when running
dbSet.Remove(entity); & dataContext.Entry(entity).State = EntityState.Modified;

The object cannot be deleted because it was not found in the ObjectStateManager
where dbcontext turned down to be null in each request

Pop up Goes Away

I ran the application logged in with Google > Clicked on Create Group > Pop opens > Click on Create button directly. Pop up goes away :(
image

inviting people to the group and inviting people to follow the goal

sir good work you have done a lot of work i appericiate you on this but sir when we invite people to the group no invitation is stored in database and so user get no notification same the case is is inviting the people to follow the cant search the person to invite for following goal

Poor password management implementation

Passwords are hashed using MD5 which is an extremely bad example to provide. MD5 is considered a broken/banned algorithm by the SDL.

Banned Crypto and the SDL
http://blogs.msdn.com/b/sdl/archive/2009/07/16/banned-crypto-and-the-sdl.aspx

Better implementation uses a password based key derivation function (pbkdf2) and used in the new versions of the ASP.NET identity model. See

http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/89b9166ca722#src/System.Web.Helpers/Crypto.cs

This implementation uses these key features:

  1. a versioned hashed password. Allows for migrating to newer versions or changing the algorithm over time
  2. a salted hashed password
  3. password that is hashed multiple times to increase hacking difficulty

A more extreme version of this algorithm can be found in the Thinktecture Identity server project:

https://github.com/thinktecture/Thinktecture.IdentityServer.v2/blob/master/src/Libraries/Thinktecture.IdentityServer.Core/Helper/CryptoHelper.cs

Profile

while logged in as Admin clicking profile yields null object - admin profile isn't created by default which causes issue.

Also appears to be some field duplication with Profile object, (username there and in IdentityUser (asp.net identity already has it it)), do really need it 2 times since you use it in the viewmodel for userprofile view.

Followers link throws null reference exception

Navigating to Account/Followers, clicking on a follower's link, throws NULL Reference exception cause UserId is null at:

var followers = Mapper.Map<IEnumerable, IEnumerable>(users);

id will be null when reaching Account/UserProfile(string id)
var user = userService.GetUserProfile(id);

Changing both FollowingViewModel and FollowersViewModel to have string Id (not UserId) and their respective partial views will solve the problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.